javascript - pushState 扰乱浏览器历史

标签 javascript html 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 中运行

最佳答案

您需要监听 popstate event .事件对象将有一个 state 属性,其中包含调用 pushState 时放入历史记录的任何数据。如果您将正确的数据放入其中,您可以使用它来将页面恢复到旧 URL 的状态。

关于javascript - pushState 扰乱浏览器历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19451138/

相关文章:

javascript - 根据 MongoDB 中的条件为所有客户分配唯一价格的策略

javascript - 当内容出现时显示固定标题

javascript - jQuery函数仅执行一次?

jquery - 输入文本后的行 - 输入样式类似于 Materialize

javascript - 从 Url Javascript 中删除附属查询字符串

javascript - 具有哈希后备库的 HTML5 Pushstate 以及示例和教程

javascript - 导出某些内容时,函数中的 "this"未定义

javascript - $$ 和 $ 之间的区别

javascript - Ext.form.Panel load() 与 loadRecord()

javascript - 如何查找浏览器是否支持 History.Pushstate?