微信web端 後退強制重新整理

weixin_34007291發表於2018-03-03
<script>
    //生成uuid
    var uuidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
    function uuid() {
        var r;
        var uuid = [];
        uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-";
        uuid[14] = "4";
        
        for (i = 0; i < 36; i++) {
            if (!uuid[i]) {
                r = 0 | Math.random() * 16;
                uuid[i] = uuidChars[(i == 19) ? (r & 0x3) | 0x8 : r];
            }
        }
        return uuid.join("");
    }
    // 相容 android
    history.replaceState(null, null, "/currentURL?a="+uuid());
    // 相容 ios
    $(function () { 
          var isPageHide = false; 
          window.addEventListener('pageshow', function () { 
            if (isPageHide) { 
              window.location.reload(); 
            } 
          }); 
          window.addEventListener('pagehide', function () { 
            isPageHide = true; 
          }); 
    })

</script>
  • android 端使用的h5中的history物件,history.replaceState(null, null, "/currentURL?a="+uuid());在頁面載入完成後改變當前url(拼接一個uuid或者隨機數),這樣每次後退的時候,瀏覽器發現當前url在瀏覽器快取中不存在就會去重新載入。
  • 但是 ios 端不支援上述方法,所以用了一段jquery程式碼解決。

轉載請註明出處,原文作者:殷天文

關於h5 history物件的使用

相關文章