1

由于英国和荷兰的 cookielaw 限制,我正试图在 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 是否真的消失了。在我使 cookie 过期之前,1它的值应该是 。但是,当我使用 cookie 过期时,我document.cookie='has_js=1;expires=' + expirationDate.toGMTString();再次检查该值,它仍然存在。

我真的无法弄清楚为什么它没有被删除。我不能等待会话或其他任何内容过期,这不符合 NL 法律。

有人有什么建议吗?

CMS:Drupal / 域:本地主机

4

1 回答 1

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");
    }
});
于 2012-10-30T16:08:10.937 回答