【问题标题】:Polyfill for location.replace()用于 location.replace() 的 Polyfill
【发布时间】:2013-04-08 09:38:04
【问题描述】:

在单页应用程序中,我需要从浏览器历史记录中删除当前页面。我的解决方案:

location.replace(url) 描述表格 MDN 文档:

将当前文档替换为提供的 URL 中的文档。这 与 assign() 方法的区别在于,在使用 replace() 之后 当前页面不会保存在会话历史中,这意味着用户 将无法使用返回按钮导航到它。

该解决方案适用于大多数浏览器,但在 Webkit 版本的 Blackberry 6.0 上会中断。我的问题是我可以编写任何 polyfill 或解决方法来模仿这种行为。

【问题讨论】:

    标签: javascript dom browser-history


    【解决方案1】:

    围绕它进行了一些研究,并根据 MDN 中的文档:

    出于安全原因,History 对象不允许 访问会话中其他页面的 URL 的非特权代码 历史,但它确实允许它浏览会话历史。

    鉴于您无法真正从非特权代码访问历史对象,我认为您可以为不支持 location.replace() 的浏览器创建 polyfill 做很多事情.

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 2020-11-22
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2012-12-29
      • 2021-04-01
      相关资源
      最近更新 更多