gpt4 book ai didi

javascript - 如何检测 Safari 4 Beta 中启用的 cookie

转载 作者:行者123 更新时间:2023-11-28 03:00:52 26 4
gpt4 key购买 nike

Windows 上的 Safari 4 Beta(版本 528.17)有一个错误。如果分配给 document.cookie 的值是过期,则 cookie 不会更改。因此,下面的 cookie 启用检测不再起作用。

var dt = new Date();
dt.setSeconds(dt.getSeconds() + 2);

document.cookie = "cookietest=1; expires=" + dt.toGMTString();
var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1;

如果我只是删除过期,它就会起作用。但是,它会在整个 session 中留下一个虚拟 cookie“cookietest=1”。

我尝试直接在document.cookie中操作来删除cookie,但似乎没有办法做到这一点。 “删除”cookie 的唯一方法是将其设置为过期。

有什么解决办法吗?

更新:Windows 版 Safari 4 Beta 中存在一个错误。如果从现在起过期时间不超过 1 小时(3600 秒),则分配 document.cookie 将失败。

我们可以在检测到后删除cookie。

var dt = new Date();
dt.setSeconds(dt.getSeconds() + 2);

document.cookie = "cookietest=1";
var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1;

document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";

最佳答案

我。该错误与 safari 构建无关。问题出在您设置的日期上。当您使用 dt.SetSeconds(dt.getSeconds()+2) 时,您将 cookie 过期时间设置为当前时间+2 秒。因此,当您加载页面并检查 cookie 时,cookie 就会过期。

ii.将时间增加到一分钟以上 (60) 并检查,它会起作用。

拉姆吉

关于javascript - 如何检测 Safari 4 Beta 中启用的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/949826/

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