解決微信瀏覽器無法使用reload()刷新頁面


場景是這樣子的,頁面在初始化時有一個ajax請求,在頁面上有一個按鈕,點擊的時候執行window.location.reload(),正常情況reload()后頁面依然會向后台發出請求,但在安卓的微信瀏覽器中reoad后請求的一直是第一次打開頁面時請求的數據。可以理解為請求被緩存了,但沒有實測,也不知道是否是緩存。

解決方法是,使用window.location.href="window.location.href+隨機數" 代替 window.location.reload()。切記,一定要加隨機數,否則一樣不會起作用。當然也可以用一個a標簽,然后設置href="window.location.href + 隨機數"。

再進一步的話可以只針對微信瀏覽器作此設置,那么就得判斷是否微信瀏覽器。可以通過window.navigator.userAgent進行判斷,結果是,Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.3.16。根據關鍵字 MicroMessenger 來判斷是否是微信內置的瀏覽器。判斷函數如下

function isWeiXin(){
    var ua = window.navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i) == 'micromessenger'){
        return true;
    }else{
        return false;
    }
}

 


免責聲明!

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



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