簡體   English   中英

重新啟動瀏覽器時沒有過期的cookie

[英]cookie wiht no expiration is not deleted when the browser is restarted

我使用此功能在客戶端中編寫Cookie:

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

我以這種方式設置了一個cookie:

createCookie("foo", "1"); // no expiration time

我希望瀏覽器在關閉時刪除該cookie,實際上大多數時候它都像這樣工作。 但是我注意到,在firefox中不是這種情況,即使重啟后cookie仍保留在那里。

我猜這取決於某些設置,這些設置允許用戶在關閉瀏覽器時凍結瀏覽器的狀態,以便在重新啟動瀏覽器時,您使用的所有選項卡仍然存在並且可以正常播放。

任何人都經歷過這樣的事情嗎?

您可以推薦任何解決方法?

干杯

我還沒有嘗試完全解決這個問題,我有一個建議,但有一點需要注意: 它將不僅將您的會話限制為瀏覽器會話,而且還將其限制為特定的標簽。

您可以將window.name設置為隨機數,然后將該標識符附加到該會話的cookie名稱中。 讀取cookie時,僅使用標識符與窗口名稱中的標識符匹配的cookie。 之所以選擇window.name是因為它在刷新和導航過程中仍然存在。

這不是最大的解決方案,但可以解決您遇到的問題。

此外,如果您不僅需要在window.name中存儲該標識符,還可以對對象進行json_encode然后base64_encode編碼以存儲更多屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM