11

如何使用 JavaScript 或 Java 清除浏览器(IE、Firefox、Opera、Chrome)历史记录,除了从浏览器本身清除?

4

4 回答 4

21

脚本通常无法访问浏览器中的 document.location 数据,因为允许访问将使任何给定站点访问您的整个浏览历史记录。最多您可以进行一些简单的操作,例如“转到历史条目 #37”或“返回一页”。但是你不能做“历史条目#23中页面的地址是什么”。

大多数银行网站将使用 javascript 链接来防止建立点击历史记录。他们会执行 document.location.replace” 来杀死最后一个历史条目(当前页面)并将其替换为新页面的地址。它实际上删除了返回页面的“返回”选项,因为前一个页面(就浏览历史而言)现在是新页面。

于 2010-02-03T22:48:33.950 回答
2

简而言之,沙盒是不可能的,它会阻止浏览器和它们运行的​​脚本/小程序修改甚至创建任何文件,除了少数狭窄的情况。允许 Javascript 和 Java 小程序清除缓存中的其他网站 cookie 或网站内容是不可取的。

于 2010-02-03T09:24:22.657 回答
1

浏览器无法让您清除其缓存。如果可能的话,这将是一个巨大的安全问题

你可以做的是告诉它不要缓存你的页面,通过发送适当的标题或使用这些元标记:

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

我想指出,如果您正在处理敏感数据,您应该使用 SSL。如果您不使用 SSL,任何有权访问网络的人都可以嗅探网络流量并轻松查看您的用户所看到的内容。

使用 SSL 还会使某些浏览器不使用缓存,除非明确告知。看到这个问题。网络浏览器是否会通过 https 缓存内容

于 2016-07-03T03:05:41.320 回答
0

但是,如果您想清除实际页面,您可以使用:

$(function () {
//replace() does not keep the originating page in the session history,
document.location.replace("/Exercises#nocache"); // clear the last entry in the history and redirect to new url
});
这被一些银行网站使用

于 2017-06-08T12:27:05.207 回答