因此,对于客户来说,我会在第一次加载网站时弹出一个订阅灯箱。
我通过使用 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/