javascript - Safari 8 每次退出时都会清除我的 cookie 吗?

标签 javascript php jquery cookies safari

因此,对于客户来说,我会在第一次加载网站时弹出一个订阅灯箱。

我通过使用 jquery.cookie.js 设置 cookie 来做到这一点。就像这样:

if (typeof $.cookie('subscription-has-popped-up') === 'undefined'){
    // No cookie, show the subscribe form.
    $('#subscribe').fadeIn();       
    $.cookie('subscription-has-popped-up', 'true');     
} else {
    // Has cookie, do nothing.
}

我注意到 Safari 8 中的一个错误,当我退出 Mac 上的 Safari 并重新打开它时,灯箱会再次弹出。每次我重新启动应用程序时,Safari 都会清除我的 cookie 吗?

当我不退出时,当然在页面重新加载时我不会收到订阅弹出窗口。似乎退出 Safari 并重新打开会清除 cookie。

对这个问题有什么见解吗?

如果 Safari 默认情况下每次应用程序退出时都会清除 Cookie,那么有什么更好的方法可以解决我的问题,让用户不会一直看到弹出窗口?

也许 PHP 有更好的方法?

编辑:下面的解决方案

最佳答案

这是我的问题:

$.cookie('subscription-has-popped-up', 'true');

需要:

$.cookie('subscription-has-popped-up', 'true', { expires: 365 });

显然没有过期属性,it's only a session cookie并在 session 结束时过期。把它改成这样就一切顺利了。

关于javascript - Safari 8 每次退出时都会清除我的 cookie 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346986/

相关文章:

javascript - 将文本放入数字输入不会触发更改事件?

JavaScript 轮播不工作

php - 如何在 JS 文件中使用 PHP(使用 Symfony)?

javascript - 在其他列表的基础上填充列表

jquery - 通过 HTTPS 上传时,为什么我在 IE8/IE9 上从 plupload 收到 "Security Error"?

php - SQL - DATE 类型格式为 YYYY-MM-DD,但 UPDATE 格式为 YYYYMMDD

javascript - 动态改变功能可以吗?

javascript - 如何在 slider 中的图像之间转换

php - ACL 结构允许默认权限和第二组权限覆盖默认值

php - 撇号问题