2014-11-23 116 views
-1

我有一個問題,即時通訊非常新的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周後彈出窗口再次顯示。

+2

您是否研究過Cookie? – 2014-11-23 09:45:33

+0

是的,但我不善於使用Javascript,所以它沒有工作:( – Chiel 2014-11-23 09:53:49

回答

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); 
    } 
} 
0

組得到一個星期後,刪除一個cookie:

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

然後檢查Cookie是否存在

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

當心:這僅僅是一個簡單可行的示範。如果你想要使用超過這個單一用例的cookies,你需要實現/導入某種類型的cookie getter/setter,如in documentation所示。