1

英国とNLでのCookie法の制限により、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 /ドメイン:localhost

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 に答える