【发布时间】:2010-03-11 19:58:14
【问题描述】:
我正在尝试使用 Javascript、跨浏览器检查是否启用了 cookie。
我使用以下代码在 Firefox 3 中正常工作 -
var cookieEnabled=(navigator.cookieEnabled)? true : false;
//if not IE4+ nor NS6+
if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){
document.cookie="testcookie";
cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false;
}
据我所见,这似乎是一种合理确定的方法来检查是否启用了 cookie 支持?但是,当我在 IE8 中关闭 cookie 并运行此代码时,它拒绝在 IE8 中工作,cookieEnabled 始终等于 true。
有什么想法吗?
谢谢。
【问题讨论】:
-
我在 IE8 上看到 - 即使我阻止所有 cookie,并尝试通过我的 javascript 代码设置一个,它被设置,我可以在文件系统上看到实际的 cookie。此规则的一个例外是当我为 cookie 设置域时,它没有被设置。所以我想知道当通过本地 HTML 文件运行时 javascript 和 navigator.cookieEnabled 是否返回 true - 但是如果你要在远程 Web 服务器上运行它(从域提供服务) - 它的行为会有所不同吗?
标签: javascript cookies internet-explorer-8