[英]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.