HTML5 history.pushState

时间:2013-03-04 05:18:09

标签: javascript html5 html5-history

我使用history.pushstate方法将历史记录添加到浏览器中,并在浏览器中添加如下历史记录。

       history.pushState("", "",myurl);

正确添加到浏览器中的历史记录。(当浏览器历史记录点击正确加载的页面时。)

但是,当我点击浏览器中的后退按钮时,它不会返回..

(即我使用hashchange功能在页面中显示不同的内容)。

实际上它需要再次点击返回。(即两次点击后退按钮返回历史记录中添加的上一页。)

如何只需按一下后退按钮即可返回。

2 个答案:

答案 0 :(得分:0)

不要将hashchange用于历史记录;这只是片段的变化。使用popstate

window.addEventListener('popstate', function () {

});

http://jsfiddle.net/ExplosionPIlls/NkEdg/

答案 1 :(得分:0)

我找到了一个有效的解决方案。

使用replacestate而不是pushstate解决了这个问题。

Pushstate添加历史记录,但它没有指向堆栈的顶部。所以首先从加载的历史记录中单击相同的页面,然后在下一次单击上一页加载。