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

时间:2015-02-05 14:50:10

标签: 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可能有更好的方法吗?

编辑:以下解决方案

2 个答案:

答案 0 :(得分:1)

这是我的问题:

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

需要:

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

显然没有expires属性,it's only a session cookie并在会话结束时到期。把它改成那个并且一切都好。

答案 1 :(得分:0)

尝试从if语句中删除 typeof 。如果错误仍然存​​在,请在不同浏览器上检查并报告...