【问题标题】:Preserving pushState history after page refresh页面刷新后保留 pushState 历史记录
【发布时间】:2015-11-17 09:37:48
【问题描述】:

我一直在开发一个使用 AJAX 和浏览器历史 API 进行导航的网站。

我已经能够使后退/前进按钮的导航正常工作,但单击刷新按钮后出现问题。

由于我存储了一个默认状态和页面标题,当 popstate 事件为空时,它会被引用,它会在页面重新加载时被覆盖。

例如,假设我的历史堆栈如下所示:

[索引,第 1 页,第 2 页]

如果我重新加载,则在第 2 页上,默认状态变为第 2 页。因此,如果我要导航回来,它最终会这样做:

第 2 页 -> 第 1 页 -> 第 2 页

因为我的 pop stand 处理程序设置为在状态为 null 时转到默认页面。

我确信其他人已经遇到过这个问题,但我还没有找到任何明确的解决方案。大多数教程都将框架留给后退/前进,从不提及刷新引起的问题。

我不确定对此有什么好的解决方案。有什么想法吗?

【问题讨论】:

    标签: javascript ajax pushstate html5-history popstate


    【解决方案1】:

    万一其他人偶然发现了这个问题,我最终用 replaceState 解决了这个问题。

    基本上只是将状态替换为初始页面加载的状态。然后一切都应该正常工作,而不必处理 popState 事件为空。

    【讨论】:

      猜你喜欢
      • 2014-05-23
      • 2014-07-06
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 2021-03-07
      • 2011-02-01
      • 2017-03-05
      • 1970-01-01
      相关资源
      最近更新 更多