Javascript 如何刷新历史记录页。状态更改(单击“上一步”按钮)?
我正在测试新的JS/HTML5历史记录方法。在加载子页面时,我有一个事件更改URL和历史状态:Javascript 如何刷新历史记录页。状态更改(单击“上一步”按钮)?,javascript,html,browser-history,Javascript,Html,Browser History,我正在测试新的JS/HTML5历史记录方法。在加载子页面时,我有一个事件更改URL和历史状态: $("#content").load("./content/map.txt", function() { history.pushState({}, "map", "map.html" ); window.history.go(1); }); 现在,当用户单击“上一步”按钮时,history.state和URL会发生更改,但不会加载上一页,也不会刷新当前URL 我试图在历史记录上
$("#content").load("./content/map.txt", function() {
history.pushState({}, "map", "map.html" );
window.history.go(1);
});
现在,当用户单击“上一步”按钮时,history.state和URL会发生更改,但不会加载上一页,也不会刷新当前URL
我试图在历史记录上添加手动刷新。状态更改后,我发现如下内容:
window.addEventListener('popstate', function(e){
if (history.state){
self.loadImage(e.state.path, e.state.note);
}
}, false);
但是它不起作用。试试这个:
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
};
这与历史记录功能没有多大关系,但与浏览器中的缓存以及处理方式有关。同样,也可以使用window.history.back。这与不必重新加载页面的想法背道而驰。这样,他就可以在方法中执行他想要的任何操作,而不是location.reload;。关键是,这适用于监听状态更改并获取当前状态。