【问题标题】:Wiping browser history with javascript (or preventing URL from being recorded)使用 javascript 擦除浏览器历史记录(或防止 URL 被记录)
【发布时间】:2012-08-19 01:39:00
【问题描述】:

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

我知道一旦有人在网站上,我们可以使用 location.replace 进行导航,以防止新页面像普通页面一样加载的方式构建它,但是当有人输入 http://example.org 时的初始页面访问仍将在历史。

是否可以在页面加载时阻止页面被记录在历史记录中,或者如果记录存在则删除记录?

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

【问题讨论】:

  • 我认为提高公众对incognito mode 的认识(大多数主流浏览器都支持)将是合适的解决方案。我认为网站方面没有什么可以做的。

标签: javascript browser browser-history


【解决方案1】:

很遗憾,这无法完成。

对于您的客户场景,我最好的建议是让用户了解如何从浏览器历史记录中删除他们的访问,以及如何在以后的访问中使用匿名浏览/隐私模式/隐身模式。

【讨论】:

  • 这就是我所担心的。我本来打算向客户建议在显着位置标出某种“安全浏览提示”页面 - 但任何时候我都可以让机器做某事,而不是指望用户遵循指令......好吧,你知道的。跨度>
  • 但是可以在浏览器扩展程序中执行此操作,在 Firefox 中使用 History API 或在 Chrome 中使用 chrome.history
【解决方案2】:

引用MDN:

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

所以我认为你的客户想要的只是不可能的。

【讨论】:

  • 谢谢。我应该检查一下 MDN,感谢该资源的提醒。
【解决方案3】:

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

【讨论】:

  • 通过具体步骤,我的意思是用户如何清除他们的历史记录
【解决方案4】:

在这种情况下,可能会使用正确配置的代理服务器。

【讨论】:

  • 我不明白这会有什么帮助。
  • 一个 CGI 代理,运行一个 https 链接,将 a) 隐藏用户正在访问的 URL。 b) 这样的代理服务器还可以发送用户代理/浏览器应该遵守的“不缓存”标头。这样,它将满足 OP 的两个要求。类似于 hidemyass.com 的 SSL 开关打开。
  • 一个好的奶酪三明治会更有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-05
  • 2015-06-14
  • 2010-10-20
  • 2011-11-14
  • 1970-01-01
  • 2013-12-01
相关资源
最近更新 更多