使用IE11,即使我将我的隐私设置为“阻止所有Cookie”,我也可以显示所有Cookie的内容,写出Cookie,找到并使用JavaScript将其删除。 (实际上,无论我将IE模拟设置为什么版本,document.cookie仍然有效。)它在Chrome上禁用cookie时应该正常工作 - 即当我尝试在其中引用它时,document.cookie返回空/无相同的JavaScript。
我正在尝试检测用户是否在其IE中关闭了Cookie。 (旧的ASP应用程序,需要IE与cookie。没有JQuery。没有Modernizr。)为此,我试图写出一个cookie,找到它,然后删除它。无论是工作还是不工作 - 这应该告诉我cookie是打开还是关闭。有任何想法吗?我认为这是检测用户IE cookie设置的最安全的方法。
我的代码:
<script language=javascript>
cookiesON = false;
if ("cookie" in document ) {
alert("1. document.cookie (before add): " + document.cookie);
var dateNow = new Date();
document.cookie = "testcookie=" + new Date()
alert("2. document.cookie (after add): " + document.cookie);
if (document.cookie.indexOf("testcookie=") > -1) {
cookiesON = true;
} else {
cookiesON = false;
}
// delete cookie: set cookie to expire 2 minutes ago
document.cookie="testcookie=xx; expires=" + (new Date(dateNow.getTime() - 2*60000).toGMTString());
alert("3. document.cookie (after delete): " + document.cookie);
}
在IE上: 无论是打开还是关闭cookie,所有3个警报都会显示document.cookie的值。你可以看到testcookie被添加并删除了。
在Chrome上: 当cookie关闭时,所有3个警报显示为document.cookie的空白。当打开cookie时,按照IE的描述工作。