gpt4 book ai didi

javascript - 如何仅在浏览器中禁用 cookie 时显示消息?

转载 作者:行者123 更新时间:2023-11-28 07:46:27 26 4
gpt4 key购买 nike

如何仅在浏览器中禁用 cookie 时显示消息?像http://stackoverflow.com显示 JavaScript 是否被禁用。

最佳答案

曾经有一个 JavaScript navigator.cookieEnabled 界面,但如今的浏览器拥有更广泛的 Cookie 控件,而不仅仅是“启用”/“禁用”,包括 session /持久选项、第一方/第三方、站点特定设置和 P3P。所以现在嗅探这个属性已经没什么用了。

不,确定是否可以设置 cookie 的唯一可靠方法是尝试设置它,并查看它是否仍然存在。另一个问题是,虽然许多浏览器会在用户的隐私控制不允许时将持久 cookie 降级为 session cookie,但 IE 不会。

如果您尝试在 IE 禁用时在 IE 中设置持久 cookie,则 cookie 只会被扔到地板上。如果您使用简单的 session cookie 检查器,发现 cookie 已启用,然后尝试设置持久 cookie,这可能会让您陷入困境。而且您无法尝试将其设置为 session cookie 和持久 cookie,因为当您在禁用持久 cookie 的情况下在 IE 中设置持久 cookie 时,它​​甚至会删除它。 em> 现有的同名 session cookie。噢,IE!

因此,如果您需要设置持久性 Cookie,但在持久性不可用的情况下凑合使用 session ,则必须首先使用它来找出允许执行的操作:

// Find out what cookies are supported. Returns:
// null - no cookies
// false - only session cookies are allowed
// true - session cookies and persistent cookies are allowed
// (though the persistent cookies might not actually be persistent, if the user has set
// them to expire on browser exit)
//
function getCookieSupport() {
var persist= true;
do {
var c= 'gCStest='+Math.floor(Math.random()*100000000);
document.cookie= persist? c+';expires=Tue, 01-Jan-2030 00:00:00 GMT' : c;
if (document.cookie.indexOf(c)!==-1) {
document.cookie= c+';expires=Sat, 01-Jan-2000 00:00:00 GMT';
return persist;
}
} while (!(persist= !persist));
return null;
}

关于javascript - 如何仅在浏览器中禁用 cookie 时显示消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27380073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com