每周只执行一次javascript

时间:2014-11-23 09:42:01

标签: javascript jquery html execute

我有一个问题,我对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周后弹出窗口必须重新显示。

2 个答案:

答案 0 :(得分:1)

首先创建一个设置cookie的函数:

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,或者进行工作并设置cookie

function checkCookie() {
    var lightbox = getCookie("lightbox");
    if (lightbox === "") { // Cookie not set
        lightbox_open();
        setCookie("lightbox", "seen", 7);
    }
}

答案 1 :(得分:0)

设置一周后删除的Cookie:

document.cookie = 'preventSpam;max-age=604800';    // 7 * 24 * 60 * 60

然后检查cookie是否存在

if (document.cookie) {
    showSomePopup();
}

注意:这只是一个最简单的演示。如果你想使用cookie超过这个用例,你需要实现/导入某种cookie getter / setter,如图in documentation所示。