pushState扰乱浏览器历史记录

时间:2013-10-18 13:38:51

标签: javascript html5 pushstate

在测试场景中,我有两页pageA和pageB。

在第一步中,按钮会触发window.history.pushState来电,并会显示pageB的地址栏地址。

在第二步中,浏览器的地址栏用于请求pageB。浏览器呈现pageB的内容。在地址栏中显示pageB的地址。

在最后一步中,浏览器的后退按钮用于返回pageA。在地址栏中,显示了pageA的地址。但浏览器显示pageB的内容,我希望看到pageA的内容。

我知道我做错了什么。即使我不知道如何描述这种行为。你有什么建议吗?

您可以在jsFiddle中找到演示:http://jsfiddle.net/HqECT/3/show/

您可能会看到实施:http://jsfiddle.net/HqECT/3/

注意:测试在Chrome v30.0.1599.101

中运行

1 个答案:

答案 0 :(得分:2)

您需要收听popstate event。事件对象将具有state属性,其中包含您在调用pushState时放入历史记录中的任何数据。如果您在其中放入了正确的数据,则可以使用该数据将页面还原到旧URL的状态。