2011-11-15 122 views
4
<div class="ads">Some text</div> 

想:顯示DIV每天一次

  1. 顯示此塊一次,每個訪問者(無需註冊)天(默認爲隱藏,cookie檢查,應該用什麼?)
  2. 如果塊已經被證明今天,那就不要今天
  3. 表明,如果塊顯示yeasterday,有一天就過去了,然後再顯示它(如何正確檢查一天過去?)

我該怎麼做?

站點的例子有這樣的特徵:

http://premiumpixels.com

http://365psd.com

+1

Cookie,但如果他們有餅乾禁用,它會每次顯示 –

+0

不知道使用cookie來檢查「一天是否過去」。 – James

+1

每位用戶每天一次? – fncomp

回答

8

我已經創建了一個實現使用cookie的要求示例代碼:

這取決於jQueryCookie plugin

<html> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
     <script type="text/javascript" src="https://github.com/carhartl/jquery-cookie/raw/master/jquery.cookie.js"></script> 
     <script type="text/javascript">           
     $(document).ready(function() { 
      if($.cookie('showOnlyOne')){ 
       //it is still within the day 
       //hide the div 
       $('#shownOnlyOnceADay').hide(); 
      } else { 
       //either cookie already expired, or user never visit the site 
       //create the cookie 
       $.cookie('showOnlyOne', 'showOnlyOne', { expires: 1 }); 

       //and display the div 
       $('#shownOnlyOnceADay').show(); 
      } 
     }); 
     </script>  
    </head> 
    <body> 
     <div id="shownOnlyOnceADay"> 
      This text should only be shown once a day! 
     </div> 
    </body> 
</html> 

通過更改系統日期進行測試。

1

這取決於你想如何嚴格本條規則。 要獲得完整的準確性,您必須使用數據庫來維護向用戶顯示的塊的用戶標識和時間。 但是,如果它不是一個非常硬和快速的規則,您可以通過在瀏覽器cookie中存儲 時間來獲得近似結果,並基於此顯示/隱藏div。 Cookie可以在JavaScript以及PHP中閱讀,無論適合您,顯示/隱藏div。

+0

我不知道如何使用cookies檢查所有3個步驟 – James

+0

@Brain然後爲什麼不使用那?讓我們調用cookie'last_ad_time',當您加載頁面時,如果沒有找到該cookie值,或者找到該值,請查看該值是否超過24小時,並顯示廣告並設置cookie.If價值不到24小時,什麼都不做。 – DhruvPathak

+0

如何檢查「價值是否超過24小時」? – James

0

其他可以cookie,你可以使用localStorage來存儲用戶最後一次訪問頁面。

+0

localstorage無法在任何地方使用 – James

2

你可以用一些這樣的代碼,假設你總是開始了與你的div有它的風格display屬性設置爲none

if(localStorage.last){ 
    if((localStorage.last - Date.now())/(1000*60*60*24) >= 1){ //Date.now() is in milliseconds, so convert it all to days, and if it's more than 1 day, show the div 
     document.getElementById('div').style.display = 'block'; //Show the div 
     localStorage.last = Date.now(); //Reset your timer 
    } 
} 
else { 
    localStorage.last = Date.now(); 
    document.getElementById('div').style.display = 'block'; //Show the div because you haven't ever shown it before. 
} 

Reference