2012-08-23 167 views
1

我有一个客户端(家庭暴力中心)想知道我们是否可以阻止他们的网站出现在浏览器历史记录中,或者从浏览器中清除用户访问他们退出网站时的历史。用javascript清除浏览器历史记录(或防止URL被记录)

我知道一旦有人在我们的网站上,我们可以通过防止使用location.replace进行导航的正常页面加载新页面的方式来构建它,但在http://example.org中输入的某个人仍然处于历史。

页面加载时是否可能阻止页面被记录在历史记录中,或者在记录存在的情况下删除记录?

我有一种不好的感觉,但如果有人会知道这是我在Stack Overflow上的所有smartypants朋友。

+3

我认为提高公众对[隐身模式](https://en.wikipedia.org/wiki/Privacy_mode)(大多数主流浏览器支持)的认识将是适当的解决方案。我不认为从网站的角度可以做很多事情。 –

回答

4

不幸的是,这是不能做到的。

对于您的客户方案,我最好的建议是,用户接受关于如何从他们的浏览器历史中删除他们的访问,以及如何在未来访问中使用匿名浏览/私人模式/隐身模式。

+0

这就是我所担心的。我打算向客户提出一些突出的“安全浏览提示”页面 - 但任何时候我都可以让一台机器做一些事情,而不是指望用户遵循指示......呃,你知道的。 –

3

报价MDN

没有办法清除会话历史记录或禁止从非特权代码 后退/前进导航。最接近的可用 解决方案是location.replace()方法,它使用提供的URL替换会话历史记录的当前 项目。

所以我认为你的客户希望的是不可能的。

+0

谢谢。我应该检查MDN,感谢提醒那些资源。 –

3

添加脚本以识别每个浏览器,并提供浏览器特定步骤以删除历史记录/使用隐身模式。

+0

通过具体的步骤我的意思是如何为用户清除他们的历史 –

-1

正确配置的代理服务器可能在该上下文中有用。

+0

我不明白这会有什么帮助。 –

+0

运行在https链接上的CGI代理将 a)隐藏用户正在访问的URL。 b)这样的代理服务器也可以发送用户代理/浏览器应该遵守的“不做缓存”标题。 这样,它将满足OP的两个要求。 有点像http://hidemyass.com/打开SSL开关。 –

+0

不错的奶酪三明治会更有用。 – CompanyDroneFromSector7G