因此,对于客户,我首次加载网站时会弹出订阅灯箱。
我通过设置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可能有更好的方法吗?
编辑:以下解决方案
答案 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
。如果错误仍然存在,请在不同浏览器上检查并报告...