2011-07-03 45 views
13

可能重複:
What is the 「best」 way to get and set a single cookie value using JavaScript如何使用此代碼將cookie設置爲x天后過期?

所以我有這樣的代碼(我沒有做),這基本上使得容器與X,所以當我按下X,在div集裝箱關閉。但是,刷新頁面時,div容器將再次出現。

我該如何做到這一點,當這個人按下X按鈕時,這個人永遠不會再在該頁面上看到div容器(或者30天的設定時間)?

我想進一步,如果可能的話,當人按下X按鈕時,他/她將永遠不會再次在我的網站上看到div容器,因爲我計劃實現相同的div容器遍佈我的網站。

希望這不是太混亂,有人可以幫助我。謝謝!

HTML代碼:

<div id="bottom_ad"> 
    <div id="close_ad" onclick="close_bottom_ad();">X</div> 
    <!-- Ad Content --> 
</div> 

CSS 代碼:(在文件末尾地點,標記之前)

#bottom_ad 
{ 
    position: absolute; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    height: 80px; 
    background: #000; 
} 
#close_ad 
{ 
    position: absolute; 
    top: 8px; 
    right: 8px; 
    width: 15px; 
    height: 15px; 
    color: #fff; 
} 

的JavaScript 代碼:

<script type="text/javascript"> 
    // I may have sorta kinda taken this function from W3Schools. :S 
    function getCookie(c_name) 
    { 
     var i,x,y,ARRcookies=document.cookie.split(";"); 
     for (i=0;i<ARRcookies.length;i++) 
     { 
      x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
      y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
      x=x.replace(/^\s+|\s+$/g,""); 
      if (x==c_name) 
      { 
       return unescape(y); 
      } 
     } 
    } 

    var ad_cookie = getCookie("closedAd"); 

    if (ad_cookie != null && ad_cookie != "") 
    { 
     document.getElementById("bottom_ad").style.display="none"; 
    } 

    function close_bottom_ad() 
    { 
     document.getElementById("bottom_ad").style.display="none"; 
     document.cookie = "closedAd=true;"; 
    } 
</script> 
+0

不是嗎?我不知道。我從不碰Javascript,但我想要這個效果。而我從未在我的生活中看到過這樣的線索。 – user815598

+0

那麼,你想知道如何設置一個cookie的權利?所以我在這裏搜索並找到了這個問題。我認爲接受的答案會幫助你,並做你想做的事。所以我決定投票將其作爲一個副本來結束。 –

+0

如果您將html放在所有頁面上的腳本中,那麼在人們刪除cookie之前,廣告絕不應該顯示。如果頁面與其他頁面不在同一目錄中,則需要爲cookie添加路徑:'document.cookie =「closedAd = true; path = /」;'查看其他問題的createCookie,日期 – mplungjan

回答

23

要設置您的Cookie有30天到期,您需要爲cookie添加到期時間。下面是設置一個cookie的N天一個非常簡單的cookie功能:

function createCookie(name, value, days) { 
    var date, expires; 
    if (days) { 
     date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     expires = "; expires="+date.toGMTString(); 
    } else { 
     expires = ""; 
    } 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

通過cookie中的設置適當的到期日期,它會自動在那個時候刪除。

然後,當您的頁面加載時(您必須等到頁面完成加載後才嘗試修改它),您可以檢查是否設置了您的Cookie closeAd,如果是,請執行代碼以隱藏廣告。爲了獲得更多無閃爍的觀看體驗(因此廣告不首先展示,然後關閉),您可以從隱藏廣告開始,只在沒有Cookie的情況下展示廣告。或者,如果沒有cookie,只能將其動態添加到頁面。

相關問題