我一直在尝试让基于 html/js
的语言选择系统正常工作,我需要一个持久的 cookie,它可以保存用户所做的语言选择(一定数量)的时间。
遗憾的是,这个 cookie 被 Firefox 误认为是事件跟踪 cookie(确实如此),因此在 session 结束时被删除。
我可以以某种方式阻止这种情况发生吗?
如果这个脚本可以工作,我完成的代码也应该可以工作:
if(document.cookie.indexOf("test=") < 0){
document.cookie = "test=Hello World; max-age=3600";
}
else{
window.location.replace("https://www.youtube.com/");
}
它应该做什么:
- 第一次打开网站时,会设置 cookie,之后不会再发生任何事情。
- 用户第二次被重定向到 youtube.com。
它的作用:
- 第一次打开网站时,会设置 cookie,之后不会再发生任何事情。
- 如果随后刷新网站或在另一个选项卡中打开网站,用户将被重定向到 youtube.com。但是,如果浏览器或选项卡关闭,Cookie 将丢失,我们将回到第 1 步。
最佳答案
我不确定,我不是 JavaScript 专家。但我注意到大多数建议检查 cookie 是否存在的文档都建议这样做: document.cookie.indexOf("test=")
所以也许 cookie 没有被删除,但你的检查如果 cookie 存在,则使用错误的方法。
if(document.cookie.indexOf("test=") < 0){
document.cookie = "test=Hello World; max-age=3600";
}
else{
window.location.replace("https://www.youtube.com/");
}
关于javascript - Firefox 删除持久性 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60335397/