如何使用jQuery设置和取消设置cookie,例如创建一个名为test的cookie并将值设置为1?


当前回答

不需要特别使用jQuery来操作cookie。

来自QuirksMode(包括转义字符)

function createCookie(name, value, days) {
    var expires;

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

function readCookie(name) {
    var nameEQ = encodeURIComponent(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 decodeURIComponent(c.substring(nameEQ.length, c.length));
    }
    return null;
}

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

看一看

我如何删除一个现有的类名,并添加一个新的与jQuery和cookies?

其他回答

你可以在Mozilla网站上使用这个库

你可以像这样设置和获取饼干

docCookies.setItem(name, value);
docCookies.getItem(name);

我认为Vignesh Pichamani的回答是最简单明了的。只是给他增加了设置过期天数的能力:

编辑:还增加了“永不过期”选项,如果没有设置天数

        function setCookie(key, value, days) {
            var expires = new Date();
            if (days) {
                expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));
                document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
            } else {
                document.cookie = key + '=' + value + ';expires=Fri, 30 Dec 9999 23:59:59 GMT;';
            }
        }

        function getCookie(key) {
            var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
            return keyValue ? keyValue[2] : null;
        }

设置cookie:

setCookie('myData', 1, 30); // myData=1 for 30 days. 
setCookie('myData', 1); // myData=1 'forever' (until the year 9999) 

确保不要做这样的事情:

var a = $.cookie("cart").split(",");

然后,如果cookie不存在,调试器将返回一些无用的消息,如“。Cookie不是一个函数”。

总是先声明,然后在检查null后进行拆分。是这样的:

var a = $.cookie("cart");
if (a != null) {
    var aa = a.split(",");

Try(这里的doc, SO代码段不工作,所以运行这个)

document.cookie = "test=1"             // set
document.cookie = "test=1;max-age=0"   // unset

下面是如何使用JavaScript设置cookie:

以下代码摘自https://www.w3schools.com/js/js_cookies.asp

函数setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires=" expires="+ d.toUTCString(); 文件中。cookie = cname + "=" + cvalue + ";"+ expires + ";path=/"; }

现在你可以使用下面的函数获取cookie:

function getCookie(cname) { var 名称 = 别名 + “=”; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0, i <ca.length, i++) { var c = ca[i]; 而 (c.charAt(0) == ' ') { c = c.子字符串(1); } if (c.indexOf(name) == 0) { 返回 c.substring(name.length, c.length); } } 返回 “”; }

最后,这是检查cookie的方法:

函数checkCookie() { var username = getCookie("username"); If(用户名!= ""){ alert(“欢迎再次光临”+用户名); }其他{ username = prompt("请输入您的姓名:",""); If (username != "" && username != null) { setCookie("username", username, 365); } } }

如果你想删除cookie,只需将expires参数设置为一个经过的日期:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";