如何在javascript中删除cookie

时间:2012-06-14 13:38:38

标签: javascript html

我正在尝试使用此功能删除cookie,但它不起作用..

deleteAllCookies();

function deleteAllCookies() {
    var cookies = document.cookie.split(";");

    for (var i = 0; i < cookies.length; i++) {
        var cookie = cookies[i];
        var eqPos = cookie.indexOf("=");
        var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
        document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }
}

为什么cookie在我的浏览器中,即使我激活了该功能......

3 个答案:

答案 0 :(得分:1)

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

function eraseCookie(name) {
    createCookie(name,"",-1);
}

来源:http://www.quirksmode.org/js/cookies.html

答案 1 :(得分:0)

在JavaScript中删除Cookie的标准方法是将Cookie的值覆盖为空值,并使日期过期为通过日期。这样的事情。

示例,这应删除acctoken cookie。

document.cookie = "acctoken=; expires=Thu, 01 Jan 1970 00:00:00 UTC;"

如果您的Cookie位于其他域或子域中,那么您将必须在覆盖的Cookie中明确指定域/子域。

document.cookie = "acctoken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=example.com"

更多,answer中的上下文。

答案 2 :(得分:-1)

var cookies = document.cookie.split(";");

for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i];
    var eqPos = cookie.indexOf("=");
    var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
    document.cookie = cname + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT ; path = /;";

上面的答案是正确的,但不要忘记添加路径