移動端返回上一頁實現方法

1、問題描述:

  使用window.history.go(-1)或者window.history.back(-1)實現移動端返回上一頁功能,原生safair瀏覽器裏存在問題(經過flex佈局的上一張頁面滾動無效,只能顯示點擊前停留的那屏,沒法經過觸摸滾動頁面)。存在於ios 9.3(13E233)和ios9.3.1(13E238)系統,ios9.3其它版本未發現該問題,ios安裝的其它瀏覽器不存在該問題,android也沒有該問題。javascript

2、解決方案:

  ios原生瀏覽器(ios其它瀏覽器不存在這種狀況)下經過document.referrer實現返回上一頁,部分手機的QQ內嵌瀏覽器使用document.referrer不能正常返回上一頁,android下經過referrer屬性實現時,當刷新頁面後返回前一頁失效,因此判斷移動端瀏覽器類型針對原生safair進行處理,具體代碼以下:java

<a href="#" id="goBack" >返回</a>

var u = navigator.userAgent;
var goBack=document.getElementById("goBack");
//針對ios原生瀏覽器處理
if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) && /(Safari)/i.test(u)){
    goBack.setAttribute("onclick","javascript:window.location=document.referrer;");
}
相關文章
相關標籤/搜索