执行JavaScript,每周只有一次
问题描述:
我有一个问题,即时通讯非常新的JavaScript,但我得到这个从互联网:执行JavaScript,每周只有一次
<script>
function lightbox_open(){
window.scrollTo(0,0);
document.getElementById('light').style.display='block';
document.getElementById('fade').style.display='block';
}
</script>
,但我不想垃圾邮件大家这个弹出,所以它只有每周在你的电脑上显示1次,认为你可以用cookie来做到这一点。但即时通讯新的,所以我不能得到它的工作。
有人能帮助我吗?
所以如果有人打开我的页面,显示弹出窗口。第二次他没有弹出窗口,1周后弹出窗口再次显示。
答
首先创建一个函数来设置cookies:
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
然后,一个函数来获取一个cookie:
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
}
return "";
}
最后,检查是否设置cookie或做其他的工作,并设置饼干
function checkCookie() {
var lightbox = getCookie("lightbox");
if (lightbox === "") { // Cookie not set
lightbox_open();
setCookie("lightbox", "seen", 7);
}
}
答
组得到一个星期后,删除一个cookie:
document.cookie = 'preventSpam;max-age=604800'; // 7 * 24 * 60 * 60
然后检查Cookie是否存在
if (document.cookie) {
showSomePopup();
}
当心:这仅仅是一个简单可行的示范。如果你想要使用超过这个单一用例的cookies,你需要实现/导入某种类型的cookie getter/setter,如in documentation所示。
您是否研究过Cookie? – 2014-11-23 09:45:33
是的,但我不善于使用Javascript,所以它没有工作:( – Chiel 2014-11-23 09:53:49