清楚popstate事件的前进历史

时间:2011-12-01 22:24:17

标签: html5 browser-history

我正在开发一个应用程序,它使用通过

添加到历史记录中的视图

history.pushState()功能

视图是一种形式的不同步骤,用户可以回到以前的步骤并进行调整但不转发而不重新发布。

我通过监听popstate事件并在调用的函数中向后导航一步来实现后向导航

问题是,当popstate被调用时,浏览器中的历史记录变得可点击,原因很明显。但是,由于历史转发按钮也会触发一个popstate事件,因此向前点击历史记录的结果是您向后退一步。

由于我不希望用户能够向前推进历史记录,因此我希望清除前向历史记录。

所以我的问题基本上是,当您退回浏览器历史记录时,有没有办法删除前向历史记录?

1 个答案:

答案 0 :(得分:1)

检查用户是否从下一步(步骤2)返回,例如,您可以使用cookie或localStorage执行此操作。如果他使用当前位置执行pushState(步骤1)。不幸的是,它会在后退按钮的历史列表中添加另一个位置,但它也会禁用历史记录前进按钮。在历史记录返回列表中将不会显示第2步。它并不完美,但可能还不错。