0

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

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

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

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

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

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

我怎样才能让它在只需单击后退按钮时返回。

4

2 回答 2

0

我找到了一个可行的解决方案,如下所示。

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

Pushstate 添加历史记录,但它不指向堆栈的顶部。因此,首先单击加载历史记录中的同一页面,然后单击加载上一个页面。

于 2013-03-04T07:39:21.310 回答
0

不要hashchange用于历史;这仅适用于片段更改。使用popstate.

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

});

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

于 2013-03-04T05:58:32.380 回答