1. 程式人生 > >iphone裡的微信瀏覽器後退不重新整理問題

iphone裡的微信瀏覽器後退不重新整理問題

網上有很多這些文章,但我覺得沒一篇真正解決這個問題,倒是能給人一個解決方案的思路,對,就是posState事件。 
要解決這個問題也不難,使用history的replaceState屬性替換當前網頁連結(其實作用是在不增加history長度的基礎上,仍然使用當前網面連結不能使用popState,因為它的作用是增加了history的長度,後退時會出錯,往往跳不出迴圈)。 

完整程式碼如下:

$(function() {
    pushHistory();
});
function pushHistory() {
    window.addEventListener("popstate", function
(e) { // alert("後退"); self.location.reload(); }, false); var state = { title : "", url : "#" }; window.history.replaceState(state, "", "#"); };
ps: 
1.popState事件只有在作用go(-1),back(),forward()等操作時才會觸發。
2.重點是self.location.reload();,後退後重新整理當前頁面。其它人寫的文章裡缺少這一塊,弄的我很是鬱悶。
3.微信裡在監聽到iphone後退事件後會觸發popState事件,在PopState事件裡執行:self.location.reload();即可重新整理後退後的頁面。