2009-11-26 62 views
-5

如何刪除的cookie被如何使用Javascript刪除cookie?

javascript:void(document.cookie=」PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com」); 

下面的語句不起作用設置。

javascript:void(document.cookie=」PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:LM=1257919388:S=odm0Ys-53ZueXfZG;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/; domain=.google.com」); 

刪除代碼有什麼問題?

+3

請編輯而不是添加一個新的你原來的問題:http://stackoverflow.com/questions/1802275/how-to-reverse-the-effect-of-the-following-execution-by-使用-javascript/1802283#1802283 – stpe 2009-11-26 08:52:15

回答

3

訣竅是正確的......特別是你需要把任何過去的值在expires頭。 (儘管這些日子你可以使用全年,但兩位數字格式只能追溯到早期的Netscapes。)

此外,請確保您不要在上面的報價中使用智能報價。

javascript:alert(document.cookie='PREF=X;path=/;domain=.google.com;expires=Sat, 01-Jan-2000 00:00:00 GMT'); 

注意,格式由Date.toGMTString生產是一樣通過cookie規範要求的日期格式,雖然它仍然在許多瀏覽器。

2

您的Cookie域爲.google.com,如果您實際上沒有運行該域中的代碼,那麼您將無法修改該cookie。

+0

我運行域中的代碼。打開Goog​​le後,我在地址欄中輸入了它。 – Steven 2009-11-26 09:06:31

0
Thu, 01-Jan-70 00:00:01 GMT 

設置時間午夜

+0

它不起作用。 – Steven 2009-11-26 09:15:07

0

同意,@ bobince。 official documentation表示使用Date.toUTCString()作爲cookie過期日期。

我95%確定您在創建cookie crumb時必須設置到期日期,如果您想稍後強制刪除它。在沒有明確過期日期的情況下創建的cookie crumb默認爲會話cookie(crumb),這意味着它在瀏覽器關閉之前不會被刪除。我記得過去嘗試過期會話cookie無濟於事。

如果您首先在cookie crumb上設置了到期日期,請記住您可以爲新的到期日期使用變量。

// assuming a non-session cookie crumb called "someCrumbName" exists: 
var now = new Date(); 
var expirationDate = new Date(); 
var someValue = "foo"; 

// set the expiration date to a week ago and delete the cookie 
expirationDate.setDate(now.getDate() - 7); 
document.cookie = "someCrumbName=" + someValue + ";expires=" + expirationDate.toUTCString();