tips
:接下去會(huì)在github寫(xiě)博客,簡(jiǎn)書(shū)不再更新和修改文章磕蒲,歡迎大家逛逛我的新博客點(diǎn)擊查看 留潦,我會(huì)盡量用更容易理解的方式寫(xiě)好每一篇博客,大家一起學(xué)習(xí)交流??。
寫(xiě)頁(yè)面時(shí)你可能會(huì)遇到這個(gè)問(wèn)題辣往,就是用Firefox兔院,Safari,IE等非chrome瀏覽器站削,點(diǎn)擊瀏覽器自帶的返回鍵會(huì)發(fā)現(xiàn)不會(huì)刷新頁(yè)面坊萝,因?yàn)槟菚r(shí)js代碼沒(méi)有執(zhí)行。
在網(wǎng)上搜到的有的不能用,有的兼容性很差十偶,故自己想了解決方法菩鲜,核心是利用setInterval的特性。
這樣比如下面這種情形:
本來(lái)只建了一個(gè)二維碼惦积,新建了一個(gè)
新建完用戶(hù)沒(méi)有點(diǎn)擊你寫(xiě)的返回按鈕(圖中的完成按鈕)接校,而是點(diǎn)擊了瀏覽器自帶的返回鍵
圖片中的chrome瀏覽器只是當(dāng)演示用,現(xiàn)實(shí)中請(qǐng)用非chrome的去感受這個(gè)問(wèn)題
比如用firefox點(diǎn)擊打開(kāi)圖片示例的網(wǎng)站鏈接
結(jié)果回去頁(yè)面沒(méi)有刷新狮崩,結(jié)果顯示還是原來(lái)的樣子
而如果返回刷新了蛛勉,會(huì)這樣(用戶(hù)體驗(yàn)會(huì)不會(huì)好些?)
奉上代碼
要刷新的頁(yè)面(如頁(yè)面A)
<script>
//chrome自帶后退刷新睦柴,故不再次刷新
var ua = window.navigator.userAgent;
var isChrome = ua.indexOf("Chrome") && window.chrome;
if (! isChrome) {
//瀏覽器后退刷新
function reload() {
setInterval(function() { //這個(gè)定時(shí)器返回A頁(yè)面會(huì)繼續(xù)執(zhí)行
if (localStorage.reload == 'true' ) { //判斷是否刷新頁(yè)面
localStorage.setItem('reload','false');
location.reload()
}
}, 500)
};
reload();
}
</script>
在A頁(yè)面之后訪問(wèn)的頁(yè)面(如頁(yè)面B)添加一下一行代碼
ps:作為A頁(yè)面執(zhí)行刷新功能的開(kāi)關(guān)
localStorage.setItem('reload','true');