javascript - Firefox 删除持久性 Cookie

标签 javascript html firefox cookies persistent

我一直在尝试让基于 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/");
        }

它应该做什么:

  1. 第一次打开网站时,会设置 cookie,之后不会再发生任何事情。
  2. 用户第二次被重定向到 youtube.com。

它的作用:

  1. 第一次打开网站时,会设置 cookie,之后不会再发生任何事情。
  2. 如果随后刷新网站或在另一个选项卡中打开网站,用户将被重定向到 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/

相关文章:

javascript - gwt 导出商 : Exporting interfaces

html - 我无法在自动居中的 div 中正确对齐 div

javascript - 如何在没有标签的地方添加标签?

laravel - Firefox 强制开发域使用 SSL 和 Chrome

javascript数组取消移位一些元素

javascript - 返回一个字符串而不是循环打印语句

javascript - Chrome、Firefox 上的全屏模式问题

javascript - 强制下载具有正确文件名的 dataURI?

javascript - 使用 bootstrap-vue 运行 jest

html - Bootstrap div- 对齐页面中心