【问题标题】:Firefox deletes persistent CookiesFirefox 删除持久性 Cookie
【发布时间】:2020-02-21 09:13:39
【问题描述】:

我一直在尝试让基于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 步。

【问题讨论】:

    标签: javascript html firefox cookies persistent


    【解决方案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/");
    }
    

    【讨论】:

    • 感谢 Arjan,我尝试了 .indexOf 方法,但结果保持不变。我已经编辑了原始帖子并添加了更多信息。
    • 我在linux上,刚刚用firefox测试过。在这里它可以正常工作。所以我无法重现你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2013-03-06
    • 2017-07-25
    • 1970-01-01
    相关资源
    最近更新 更多