ios 上瀏覽器返回上一頁不會刷新頁面問題,頁面初始化的方法不執行


https://blog.csdn.net/yang450712123/article/details/79276102

https://blog.csdn.net/Chengbin_Huang/article/details/80271029

https://blog.csdn.net/k491022087/article/details/76576406

ios 上瀏覽器返回上一頁不會刷新頁面問題,頁面初始化的方法不執行
問題描述
在 ios 上瀏覽器返回上一頁不會刷新頁面問題,頁面初始化的方法不執行,造成了很多意外情況,這個問題不能忍;

解決方案
方法一:hack方法,加入iframe強制刷新后,去除
function(title){
var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
document.title= title;//添加標題
if(isIOS){
// hack在IOS微信等webview中無法修改document.title的情況
var $iframe = $('<iframe src="/favicon.ico"></iframe>').on('load', function() {
setTimeout(function() {
$iframe.off('load').remove()
}, 0)
}).appendTo($('body'))
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
方法二:利用 onpageshow 事件觸發:
window.onpageshow=function(e){
if(e.persisted) {
window.location.reload()
}
};
---------------------
作者:FE-阿陽
來源:CSDN
原文:https://blog.csdn.net/yang450712123/article/details/79276102
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 

* pageshow只使用於ios10以上。

 

微信公眾號開發時,在IOS系統下點擊返回按鈕,發現返回后的頁面是沒有經過刷新的,雖然這樣是有好處,不用再重新請求頁面數據,但是很多時候我們是需要重新去請求頁面數據的。

首先我們需要監聽手機的系統,然后在監聽返回事件,當用戶點擊返回按鈕后,將頁面進行強制刷新,代碼如下


var ua = navigator.userAgent;
if (ua.indexOf('iPhone') > -1) {//蘋果手機
window.onload = function () {
setTimeout(() => {
window.addEventListener("popstate", function (e) {
// alert("我監聽到了瀏覽器的返回按鈕事件啦");
self.location = document.referrer;
});
}, 500)
}
}

popstate事件只會在瀏覽器某些行為下觸發, 比如點擊后退、前進按鈕(或者在JavaScript中調用history.back()、history.forward()、history.go()方法)。當網頁加載時,各瀏覽器對popstate事件是否觸發有不同的表現,Chrome 和 Safari會觸發popstate事件, 而Firefox不會,因此需要加一個定時器進行延遲,這樣就不會因為頁面剛一加載就出發popstate事件。

referrer 屬性可返回載入當前文檔的文檔的 URL。
---------------------
作者:安靜的對折
來源:CSDN
原文:https://blog.csdn.net/k491022087/article/details/76576406
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM