【问题标题】:Clear forward history on popstate event清除 popstate 事件的转发历史记录
【发布时间】:2012-01-11 01:25:24
【问题描述】:

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

添加到历史记录中的视图

history.pushState()函数

视图是表单中的不同步骤,用户可以退回到之前的步骤并进行调整,但如果不重新发布就不能前进。

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

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

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

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

【问题讨论】:

    标签: html browser-history


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多