2013-08-30 214 views
1

我正在測試新的JS/HTML5 history方法。在子頁面加載我有一個事件改變URL和歷史狀態:如何刷新history.state更改頁面(單擊後退按鈕)?

$("#content").load("./content/map.txt", function() { 
    history.pushState({}, "map", "map.html"); 
    window.history.go(1); 
}); 

現在,當用戶單擊後退按鈕history.state和URL變化,無需加載以前的頁面(不刷新當前URL) 。

我試圖在history.state變化添加手動刷新,我發現這樣的事情:

window.addEventListener('popstate', function(e){ 
    if (history.state){ 
     self.loadImage(e.state.path, e.state.note); 
    } 
}, false); 

,但它不工作。

+0

這不會有很多工作要做與歷史記錄功能,但緩存在瀏覽器中,以及如何處理它。也使用window.history.back,同樣的事情。 – kangoroo

+0

嘗試'replaceState()' – rps

回答

-1

試試這個:

window.onpopstate = function(event) { 
    if(event.state["map"] == "some_state") // get the current state from the event obj 
    location.reload(); // reloads the current page to clear ajax changes 
}; 
+0

這違背了不必重新加載頁面的整個想法。 – putvande

+0

然後,他可以做任何他想要的方法,而不是location.reload();.關鍵是這適用於監聽狀態變化並獲取當前狀態。 – Michael