我正在尝试根据JS cookie创建一个简报部分。我有一切正常工作,但显示cookie是否存在的内容。我正在使用JS-cookie脚本。
我希望此部分仅在用户没有设置cookie时显示。基本上,如果这是他们第一次查看网站或cookie过期后(30天)。
现在,即使我使用私人浏览器,不同的计算机等,它仍然会说cookie已设置并显示内容。当我没有设置时,我的当前代码有它,所以你不会看到div显示,除非你删除!来自if声明。
我正在使用js-cookie作为cookie。你可以看到codepen http://codepen.io/byoungz/pen/YqoxJy
var emailSignup = document.getElementById("tgs-subscribe-bar"),
screenWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
$('#tgs-subscribe-bar').hide();
if (Cookies.get('emailsignup') == 'null') {
if (screenWidth < 768) {
//code for smaller screens
setTimeout(function() {
$('#tgs-subscribe-bar').slideDown();
}, 4000);
} else {
//code for larger
setTimeout(function() {
$('#tgs-subscribe-bar').slideDown();
}, 1000);
}
Cookies.set('emailsignup', 'seenemail', { expires: 30, path: '/' });
}
$('.email-exit').click(function() {
$("#tgs-subscribe-bar").slideToggle();
});
答案 0 :(得分:1)
如果cookie不存在,它将返回undefined而不是字符串 null
试试这个:
var emailSignup = document.getElementById("tgs-subscribe-bar"),
screenWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
$('#tgs-subscribe-bar').hide();
if (!Cookies.get('emailsignup')) {
if (screenWidth < 768) {
//code for smaller screens
setTimeout(function() {
$('#tgs-subscribe-bar').slideDown();
}, 4000);
} else {
//code for larger
setTimeout(function() {
$('#tgs-subscribe-bar').slideDown();
}, 1000);
}
Cookies.set('emailsignup', 'seenemail', { expires: 30, path: '/' });
}
$('.email-exit').click(function() {
$("#tgs-subscribe-bar").slideToggle();
});