2012-04-05 168 views
1

我想運行一次javascript。 我嘗試使用動態驅動器中的腳本,但它似乎不適用於腳本。運行javascript一次

我希望它在用戶第一次訪問該頁面時運行,但不會再彈出。

任何幫助?

我的劇本是

<script src="http://www.google.com/jsapi"></script><script>google.load("jquery", "1");</script> 
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<script type="text/javascript"> 
    Username="___", <!-- Facebook Username Without http://facebook.com/ --> 
    Title="Join Our Facebook!", <!-- Title --> 
    Skin="01", <!-- 01 Through 04 --> 
    Time="15", <!-- Countdown In Seconds --> 
    Wait="0", <!-- Wait For Popup --> 
    Lang="en" 
</script> 
<script type="text/javascript" src="likeboxfbfanpro.js"></script> 
<script type="text/javascript">$(document).ready(function(){$().popupbox({ closeable: false });});</script> 
+1

你知道,每當我遇到了一個網站,彈出一些討厭了,我立即關閉該標籤,並再也不會去該網站。我認識的每個人都一樣。 – 2012-04-05 22:36:26

+0

我試過使用頻率上限腳本,但它不適用於腳本。 它可以與文本/圖像一起工作,但是當我把腳本放在Div中時,它會在第一次彈出後仍然彈出 – 2012-04-05 22:36:58

+1

請停止打字,因爲它真的很煩人。 – asawyer 2012-04-05 22:37:31

回答

2

你可以做兩件事情:

  • 設置顯示您的cookie的每個頁面加載存在的消息和測試後的第一次一個cookie 。如果cookie不存在,則顯示消息,如果存在則跳過。

  • 設置服務器端會話值(僅限會話)或數據庫記錄(跨越會話,如果您能以某種方式識別返回訪問者(即IP)),以便在向客戶端提供第一頁後控制HTML。如果沒有會話/數據庫值,只發送消息html

如果你想設置cookie。下面是確實的cookie處理一個小腳本:

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

function readCookie(name) { 
var nameEQ = name + "="; 
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,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
} 
return null; 
} 

function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 

現在,在你的代碼,你可以使用這個如下:

if (!readCookie('alreadyShown')) { 
    .. add you show message code here... 
    createCookie('alreadyShown', true) 
} 
+0

我會設置一個cookie,但不知道從哪裏開始。 – 2012-04-05 22:48:08

+0

很好的回答!完美滿足我的需求。 我看到「date.setTime(date.getTime()+(days * 24 * 60 * 60 * 1000));」這一行。這是多久,直到cookie過期,是嗎? :)這到底意味着什麼?這是一天,一週還是一個月?我想有一天:)謝謝,@koenpeters – zorensen 2015-11-18 07:39:27

+0

該函數預計毫秒。所以它的日子* 24小時* 60分鐘* 60秒* 1000得到毫秒數 – koenpeters 2015-11-18 12:33:18