2013-01-11 115 views
1

我需要幫助來更改此代碼,以便cookie僅持續通過會話而不是1年前進。我需要做些什麼改變?Javascript cookies和重定向

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

我試圖做到這一點,但它似乎並沒有工作。 Cookie已創建,但會話關閉後不會消失。

function createCookie(name,value) { 
    document.cookie = name+"="+value+"; path=/"; 
} 

---更新---

我做了一些小的改動代碼:

function createCookie(name,value,expires) { 
     var expires = ""; 
     document.cookie = name+"="+value+expires+"; path=/"; 
    } 

現在我正在使用Chrome,並沒有與我的代碼工作有,並且它也不適用於這個代碼。但是這個代碼適用於IE,Firefox和Opera。當會話結束時cookie被刪除,但在Chrome中不會被刪除...

+1

只是不設置到期屬性或將其設置爲'null' – marekful

+0

'的document.cookie =名稱+ 「;路徑= /」' – mplungjan

+1

在問候您的Chrome評論,Chrome有一個重新啓動之間保持會話cookie的傾向,做一些Google搜索。 – mcassano

回答

0

如果您使用的是Chrome或Firefox,那麼請將過期設置爲0,如果您使用的是IE,則將所有expires參數放在一起。

+0

否。完全廢止到期。將它設置爲0可能會刪除cookie – mplungjan

1

Chrome版本19以來,對會話cookie的處理做出了突破性更改。爲了改善用戶體驗,會話cookie不會被刪除。

如果我理解正確,因爲在Chrome設置中設置的選項會說:「​​繼續我離開的位置」,會話cookie永不過期。

請看:

Chrome doesn't delete session cookies

+0

是的,我讀過......我完全不明白這個決定,這對我來說似乎很瘋狂。 –

+0

我正在嘗試用自定義JavaScript實現解決方法。當解決方案准備就緒時,我會更新我的答案。 – freedev

+0

這將是非常好的你,祝你好運! –