Firefox删除持久性Cookie

问题描述 投票:1回答:1

我一直在尝试使基于html/js的语言选择系统正常工作,为此我需要一个持久的cookie,这样可以在一定时间内节省用户选择的语言。

可悲的是,此cookie被Firefox误认为是活动跟踪cookie(实际上是),因此在会话结束时被删除。

我可以防止这种情况发生吗?

如果此脚本可以运行,那么我完成的代码也应该可以运行:

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。

下图显示了Firefox在过去一周内用于活动跟踪的阻止脚本:

enter image description here

javascript html firefox cookies persistent
1个回答
0
投票

我不确定,我不是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/");
}
© www.soinside.com 2019 - 2024. All rights reserved.