无法将Cookie设置为在浏览器关闭时过期

时间:2017-11-23 08:50:41

标签: javascript cookies browser

我正在尝试使用javascript设置cookie,因此当浏览器关闭时它会过期。

我有以下功能:

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

我在网上找到了很多方法,例如将日期设置为“”,将其设置为昨天(在这种情况下,甚至没有添加cookie)并完全省略“expires”。我尝试在Firefox和Chrome上检查每个进程是否已经停止再次打开,但cookie始终存在。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

我正在使用这个功能。它会对你有用我gess :)

function createCookie(name, value, expiresInX_days, path) {
        var a = new Date;
        var expires = expiresInX_days || 1;
        a.setTime(Date.now() + (1000 * 60 * 60 * 24 * expires));
        var pt = path ? " ; path=" + path + ";" : ";";
        return (document.cookie = name + "=" + value + ";" + "expires=" + a.toUTCString() + pt) ? !0 : !1;
}

答案 1 :(得分:0)

如果要删除Cookie,可以使用以下命令:

function rmCookie(cookieName){
    var a = new Date;
    a.setTime(0);
    return (document.cookie = cookieName + "=;" + a.toUTCString()) ? !0 : !1;
}

如果你想让你的饼干干净,

function getMyFuckingCookie(cookieName){
    var a = document.cookie.replace(/; /g, ";").split(";"),
        b = a.length,
        c = {},
        nm = cookieName || !1;
    while (b--) {
        var d = a[b].split(/=(.+)/);
        c[d[0]] = d[1];
    }
    return (nm) ? c[nm] : c;
}