天天看點

移動端傳回上一頁實作方法一、問題描述:二、解決方案:

一、問題描述:

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

二、解決方案:

  ios原生浏覽器(ios其它浏覽器不存在這種情況)下通過document.referrer實作傳回上一頁,部分手機的QQ内嵌浏覽器使用document.referrer不能正常傳回上一頁,android下通過referrer屬性實作時,當重新整理頁面後傳回前一頁失效,是以判斷移動端浏覽器類型針對原生safair進行處理,具體代碼如下:

<a href="#" target="_blank" rel="external nofollow"  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;");
}      

轉載于:https://www.cnblogs.com/linux-centos/p/5972621.html

繼續閱讀