用于location.replace()的polyfill

时间:2013-04-08 09:38:04

标签: javascript dom browser-history

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

  

location.replace(url)说明表单MDN文档:

     

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

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

1 个答案:

答案 0 :(得分:0)

根据MDN中的文档进行了一些研究:

  

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

鉴于您无法从非特权代码中真正访问历史对象,我不认为您可以做很多事情来创建一个不用于不含特色的broswers的polyfill支持location.replace()。