js操作cookie 添加,获取,删除,分别有啥参数,且各个参数代表啥。特别是添加cookie的时候。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js操作cookie 添加,获取,删除,分别有啥参数,且各个参数代表啥。特别是添加cookie的时候。相关的知识,希望对你有一定的参考价值。

如:SetCookie (name, value,expires ,path ,domain ,secure ) 各个参数代表什么。

这里的SetCookie 是自己定义的一个函数

如:
function setCookie(name, value, expire)
window.document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));


所以里面的这些参数都是直接定义的JS只有window.document.cookie 定义cookie的方法至于里面的值 直接定义
参考技术A 邮箱~ /* 添加/删除 cookie */ function setCookie(name, value, 获取cookie 用法:getCookie(cookie名称) 解释:cookie名称:必须有 (例如 参考技术B http://baike.baidu.com/view/835.htm
里面有你想要的
参考技术C name:COOKIE的名称
value:COOKIE的值
expires:COOKIE过期时间。指定cookie的生命期。
path:COOKIE保存的路径,指定与cookie关联的WEB页。值可以是一个目录,或者是一个路径。
domain:COOKIE指定关联的WEB服务器或域。值是域名
Secure:COOKIE的安全,指定cookie的值通过网络如何在用户和WEB服务器之间传递。这个属性的值或者是“secure”,或者为空。缺省情况下,该属性为空,也就是使用不安全的HTTP连接传递数据。如果一个 cookie 标记为secure,那么,它与WEB服务器之间就通过HTTPS或者其它安全协议传递数据。

js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

每天学习一点点 编程PDF电子书、视频教程免费下载:
http://www.shitanlife.com/code



var CookieUtil = { // 设置cookie set : function (name, value, expires, domain, path, secure) { var cookieText = ""; cookieText += encodeURIComponent(name) + "=" + encodeURIComponent(value); if (expires instanceof Date) { cookieText += "; expires=" + expires.toGMTString(); } if (path) { cookieText += "; path=" + path; } if (domain) { cookieText += "; domain=" + domain; } if (secure) { cookieText += "; secure"; } document.cookie = cookieText; }, // name=value; expires=expiration_time; path=domain_path; domain=domain_name; secure // 获取cookie get : function (name) { var cookieName = encodeURIComponent(name) + "=", cookieStart = document.cookie.indexOf(cookieName), cookieValue = ""; if (cookieStart > -1) { var cookieEnd = document.cookie.indexOf (";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd)); } return cookieValue; }, // 删除cookie unset : function (name, domain, path, secure) { this.set(name, "", Date(0), domain, path, secure); } }; // 测试 CookieUtil.set("name", "zhang"); var name = CookieUtil.get("name"); alert(name); // zhang CookieUtil.unset("name"); alert(CookieUtil.get("name")); // 空










针对cookie数据存储少量的问题,我们提出了子cookie的概念。即在每条cookie的值中存储多条数据,用"&"隔开。
    var SubCookieUtil = {
        /** 设置一条完整的cookie
        *   param name : 表示cookie的名称,必填
        *   param subCookies : 表示cookie的值,为一个对象,必填
        *   param expires : 表示cookie的过期时间,可以不填
        *   param domain : 表示cookie的域名,可以不填
        *   param path : 表示cookie的路径,可以不填
        *   param secure : 表示cookie的安全标志,可以不填
        *   eg : SubCookieUtil.setAll("info", { name : "zhang", age : 23});
        **/
        setAll : function (name, subCookies, expires, domain, path, secure) {
            var cookieText = "", subName, cookieParts = [];
            cookieText += encodeURIComponent(name) + "=";
            for(subName in subCookies) {
                cookieParts.push(encodeURIComponent(subName) + "=" + encodeURIComponent(subCookies[subName]));
            }
            if (cookieParts.length > 0) {
                cookieText += cookieParts.join("&");
                if (expires instanceof Date) {
                    cookieText += "; expires=" + expires.toGMTString();
                }
                if (path) {
                    cookieText += "; path=" + path;
                }
                if (domain) {
                    cookieText += "; domain=" + domain;
                }
                if (secure) {
                    cookieText += "; secure";
                }
            } else {
                cookieText += "; expires=" + Date(0).toGMTString();
            }
            document.cookie = cookieText;
        },
        /** 设置一条子cookie
        *   param name : 表示cookie的名称,必填
        *   param subName : 表示子cookie的名称,必填
        *   param value : 表示子cookie的值,必填
        *   param expires : 表示cookie的过期时间,可以不填
        *   param domain : 表示cookie的域名,可以不填
        *   param path : 表示cookie的路径,可以不填
        *   param secure : 表示cookie的安全标志,可以不填
        *   eg : SubCookieUtil.set("info", "sex", "boy");
        **/
        set : function (name, subName, value, expires, domain, path, secure) {
            var cookies = this.getAll(name) || {};
            cookies[subName] = value;
            this.setAll(name, cookies, expires, domain, path, secure);
        },
        /** 读取一条完整cookie
        *   param name : 表示cookie的名称,必填
        *   return : 一个cookie对象
        *   eg : SubCookieUtil.getAll("info");
        **/
        getAll : function (name) {
            var cookieName = encodeURIComponent(name) + "=",
                cookieStart = document.cookie.indexOf(cookieName),
                cookieValue = "", i, len, subCookies, parts, result = {};
            if (cookieStart > -1) {
                var cookieEnd = document.cookie.indexOf (";", cookieStart);
                if (cookieEnd == -1) {
                    cookieEnd = document.cookie.length;
                }
                cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
                if (cookieValue.length > 0) {
                    subCookies = cookieValue.split("&");
                    for (i = 0, len = subCookies.length; i < len; i++) {
                        parts = subCookies[i].split("=");
                        result[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]);
                    }
                    return result;
                }
            }
            return null;
        },
        /** 获取一条子cookie的值
        *   param name : 表示cookie的名称,必填
        *   param subName : 表示子cookie的名称
        *   return : 一个子cookie的值
        *   eg : SubCookieUtil.get("info", "name");
        **/
        get : function (name, subName) {
            var cookies = this.getAll(name);
            if (cookies) {
                return cookies[subName];
            } else {
                return null;
            }
        }, 
        /** 删除一条完整cookie
        *   param name : 表示cookie的名称,必填
        *   param domain : 表示cookie的域名,可以不填
        *   param path : 表示cookie的路径,可以不填
        *   param secure : 表示cookie的安全标志,可以不填
        *   eg : SubCookieUtil.unsetAll("info");
        **/
        unsetAll : function (name, domain, path, secure) {
            this.setAll(name, "", Date(0).toGMTString(), domain, path, secure);
        },
        /** 删除一条子cookie
        *   param name : 表示cookie的名称,必填
        *   param subName : 表示子cookie的名称,必填
        *   param domain : 表示cookie的域名,可以不填
        *   param path : 表示cookie的路径,可以不填
        *   param secure : 表示cookie的安全标志,可以不填
        *   eg : SubCookieUtil.unset("info", "name");
        **/
        unset : function (name, subName, domain, path, secure) {
            var cookies = this.getAll(name);
            if (cookies) {
                delete cookies[subName];
                this.setAll(name, cookies, null, domain, path, secure);
            }
        }   
    };
    // 测试:
    var zhang = {
        name : "zhang",
        age : 23,
        height : "178cm",
        weight : "66kg"
    }
    // 设置一条完整的cookie
    SubCookieUtil.setAll("zhang", zhang);
    // 获取一条完整的cookie
    var zhang = SubCookieUtil.getAll("zhang");
    alert(zhang.weight);    // 66kg
    // 再为张添加一个子cookie
    SubCookieUtil.set("zhang", "sport", "basketball");
    // 获取子cookie
    alert(SubCookieUtil.get("zhang", "sport")); // basketball
    // 删除一条子cookie
    SubCookieUtil.unset("zhang", "age");
    alert(SubCookieUtil.get("zhang", "age"));   // undefined
    // 删除一条完整的cookie
    SubCookieUtil.unsetAll("zhang");
    alert(SubCookieUtil.getAll("zhang"));   // 报错,因为已经被删除




每天学习一点点 编程PDF电子书、视频教程免费下载:
http://www.shitanlife.com/code






















以上是关于js操作cookie 添加,获取,删除,分别有啥参数,且各个参数代表啥。特别是添加cookie的时候。的主要内容,如果未能解决你的问题,请参考以下文章

js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

Js操作cookie的代码 要求:js对cookie设置,添加,删除 js代码简单点 ··偶JS不太好

js/java 获取添加修改删除cookie(最全)

js操作获取和设置cookie

本地cookie的使用

js之操作cookie