Javascript 操作 cookie

Posted 制作小程序网站电脑程序

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript 操作 cookie相关的知识,希望对你有一定的参考价值。

BOM 中的 document.cookie 对象包含了所有的 cookie 字符串,以 Internet Explorer 浏览器为例,值被 “ ; ” 号分开,格式大概为 “ 名称=值;expires=过期时间 ”,当有多个 cookie 时名称与值以 “ ; ” 号分开,开发者操作 cookie 只能自己进行解析操作,这样就变得非常繁琐,于是下面的方法提供了三个常用的 cookie 操作方法:

//按照指定的名称、值与存在小时数设置 Cookie
function SetCookie(_name, _value, _hours) {
    var d = new Date();
    d.setTime(d.getTime() + (_hours * 60 * 60 * 1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = encodeURIComponent(_name) + "=" + encodeURIComponent(_value) + "; " + expires;
}

//返回指定名称的 Cookie 的值
function GetCookie(_name) {
    var name = encodeURIComponent(_name) + "=";
    var ca = document.cookie.split(\';\');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) == 0) {
            return decodeURIComponent(c.substring(name.length, c.length));
        }
    }
    return undefined;
}

//删除指定名称的 Cookie
function DelCookie(_name) {
    document.cookie = encodeURIComponent(_name) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
}

SetCookie 方法使用小时作为单位,以 “ name=Henry ” 为例,SetCookie("name","Henry",0.5) 可以设置该 cookie 并存在半个小时;GetCookie("name") 可以获取到 "Henry" 的返回值;DelCookie("name") 直接删除,这个时候再调用 GetCookie("name") 只会得到 undefined 的返回值,SetCookie 方法既可以用来新增也可以用来修改。

以上是关于Javascript 操作 cookie的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript:set-cookie 和响应处理原子操作吗?

Javascript 操作 cookie

JavaScript之DOM-10 cookie (cookie概述cookie操作)

JavaScript 操作cookie

XSS:如何从 C# 中的字符串中删除 JS 片段?

JavaScript 操作 Cookie