Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何刷新历史记录页。状态更改(单击“上一步”按钮)?_Javascript_Html_Browser History - Fatal编程技术网

Javascript 如何刷新历史记录页。状态更改(单击“上一步”按钮)?

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 我试图在历史记录上

我正在测试新的JS/HTML5历史记录方法。在加载子页面时,我有一个事件更改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;。关键是,这适用于监听状态更改并获取当前状态。