2012-10-30 22 views
1

由於cookielaw在英國和荷蘭的限制,我正在嘗試在其設置後立即過期。 下面是代碼我現在使用:Javascript:cookie不會過期

(function ($) { 

$(document).ready(function(){ 

    if (!CookieControl.maySendCookies()) { 

     var now = new Date(); 
     var expirationDate = new Date(); 
     expirationDate.setDate(now.getDate() - 7); 
     alert(getCookieValue('has_js')); 
     document.cookie='has_js=1;expires=' + expirationDate.toGMTString(); 
     alert(getCookieValue('has_js')); 
    } 

}); 

})(jQuery); 

getCookieValue功能是其他文檔的功能,以檢查它的餅乾實際上是走了。在我過期之前,cookie的值爲1,因爲它應該是。但是,當我通過使用document.cookie='has_js=1;expires=' + expirationDate.toGMTString();過期cookie時,我再次檢查該值,並且它仍然存在。

我真的不知道爲什麼它沒有被刪除。我不能等待會議或任何過期,這是不符合NL法律。

有人有什麼建議嗎?

CMS:Drupal的/領域:本地主機

回答

1

它可能與路徑,我不知道,但你可以使用下面的腳本:

function getCookieValue(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') 
      c = c.substring(1, c.length); 
     if (c.indexOf(nameEQ) == 0) 
      return unescape(c.substring(nameEQ.length, c.length)); 
    } 
    return null; 
} 

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

function delCookieValue(name) { 
    Set_Cookie(name, '', -1); 
} 

$(document).ready(function(){ 
    if (!CookieControl.maySendCookies()) { 
     delCookieValue("has_js"); 
    } 
}); 
+0

嗨Mahyar,對答覆表示感謝。我選擇了你的劇本,看起來更像樣,然後是我的普通文檔。但結果沒有區別。但是,我發現它與我正在測試的瀏覽器有關。 Firefox顯然只能實時顯示正在添加的Cookie,但不顯示實時更改或刪除。所以它一直工作。 – Redox

+0

嗨,你可以清除有問題的瀏覽器的所有cookies並再次嘗試。你可以使用[如何清除瀏覽器的Cookies](http://www.wikihow.com/Clear-Your-Browser's-Cookies)如果有幫助 – Mahyar