2

在单页应用程序中,我有一个要求,我必须从浏览器历史记录中删除当前页面。我使用的解决方案:

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

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

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

4

1 回答 1

0

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

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

鉴于您无法真正从非特权代码访问历史对象,我认为在为不支持 location.replace() 的浏览器创建 polyfill 方面您无能为力。

于 2013-04-08T11:43:06.840 回答