2015-03-31 156 views
0

我正在使用Cookie,應在用戶關閉頁面後將其刪除,但它們不是。這是我如何設置與JS會話關閉後Cookie未被刪除

document.cookie="status=false"; 

餅乾我可以看到餅乾控制檯後,我關閉瀏覽器,然後再次打開它,去我的網頁上仍然有使用網站status=false任何想法,爲什麼?

+0

如果沒有答案的爲你工作:該Cookie _should_被刪除,從您提供的信息。似乎還有其他問題出錯了。請創建一個新的空白HTML頁面,並嘗試用最少的(不必要的)代碼來重現問題。然後,將其添加到您的問題中,以便我們可以使用它並查找錯誤。 – blex 2015-03-31 18:52:11

+0

沒有,依然不起作用。我只用一個cookie創建了「新鮮」頁面,當我在開發工具中創建它時,它說的是Duration:Sesion,並且在關閉標籤頁並在新頁面中打開頁面後,仍然存在該cookie。這是代碼http://pastie.org/10065425 – opengl 2015-03-31 19:09:19

+0

這很奇怪,我複製粘貼你的代碼,把它放在服務器上,用Firefox訪問它,成功設置cookie,關閉瀏覽器,重新打開它,去到頁面,找到了餅乾:走了。然後我對Chrome也做了同樣的事情。同樣的結果。你使用的是什麼瀏覽器? – blex 2015-03-31 19:19:18

回答

0

document.cookie = ...sets individual cookie values,它並沒有「全曲奇」設置爲您傳遞的字符串,所以設置「狀態=假」簡單地結合或更新了「狀態」值,不管任何其他人在餅乾:

document.cookie = "cow=bell"; 
document.cookie = "cat=lol"; 
// cookie is now "cow=bell&cat=lol", not just "cat=lol" 

如果您想要刪除整個cookie,請將其過期時間設置爲「過去」,瀏覽器將爲您進行清理。

(正如評論指出的那樣,如果你從來沒有設置Cookie的過期時間戳,it'l當網頁會話結束,如您關閉該標籤/瀏覽器到期)

0

實際上,我是這樣做的今天。如果你用它們的var docCookies代碼創建一個js然後使用像docCookies.setItem() docCookies.setItem() docCookies.getItem()docCookies.removeItem()這樣的函數很好地工作,那麼一個很好的參考是Mozilla cookie documents

1

我這個「絕招」解決了這個問題,我不知道爲什麼我不能讓餅乾工作

window.onbeforeunload = function() { 
    document.cookie="status=false"; 
}; 
+0

這應該被標記爲正確答案 – 2017-10-03 03:00:04