2013-09-05 95 views
1
onClick="javascript:document.cookie='n=1'" 

進出口新的JavaScript的JavaScript設置cookie的到期時間按鈕點擊

我有一個BTN點擊將設置cookie的,我怎麼能設置到期此cookie時間1時間?

+0

http://stackoverflow.com/questions/13154552/javascript-set-cookie-with-expire-time – Gatekeeper

+0

看在這個問題:http://stackoverflow.com/questions/3794989/how-to-set-a-cookie-to-expire-in-1-hour-in-javascript –

回答

1

你可以這樣做:

onClick="setupCookie();" 

function setupCookie() { 
    document.cookie = "n=1"; 
    setTimeout(function() { 
     document.cookie = "n=0"; 
    }, 3600000); // 1 hour 
} 
+0

這將取決於用戶停留在現場一個小時。如果他們離開頁面,cookie的值將不會被重置。 – villecoder

3

當你寫的cookie到瀏覽器,您需要指定到期日期或最大年齡。但是請注意,Interent Explorer 8及以下版本會忽略max-age。所以如果你期待從該瀏覽器獲得使用,你可以依靠過期。

例子:

<script type="text/javascript"> 
function setMyCookie() { 
    var now = new Date(); 
    var expires = new Date(now.setTime(now.getTime() + 60 * 60 * 1000)); //Expire in one hour 
    document.cookie = 'n=1;path=/;expires='+expires.toGMTString()+';'; 
} 
</script> 

而且您的按鈕可以調用這個函數像這樣:

<input type="button" onclick="setMyCookie();">Set Cookie</input> 

請注意,我還包含路徑,表明這個cookie是網站範圍。

你可以閱讀更多關於日期或最大年齡這裏過期餅乾: http://mrcoles.com/blog/cookies-max-age-vs-expires/

+0

這應該是 now.setTime(now.getTime()+ 60 * 60 * 1000); //在一小時內過期 document.cookie ='n = 1; path = /; expires ='+ now.toGMTString()+';'; } expires中的值是一個整數;你想現在更新日期 – tgf

+0

感謝您的評論。我更新了腳本以從now.setTime()創建一個新的Date對象。 – villecoder