设置cookie,获取cookie,删除cookie,修改cooki…
2018-06-24 00:54:43来源:未知 阅读 ()
怎么设置cookie,怎么设置cookie以及删除cookie和cookie详解
在操作cookie之前,先来看一下cookie长什么样。
可以看到,cookie是一个个键值对(“键=值”的形式)加上分号空格隔开组合而成, 形如: "name1=value1; name2=value2; name3=value3"
设置cookie:
1 /** 2 * 设置cookie 3 * @param name cookie的名称 4 * @param value cookie的值 5 * @param day cookie的过期时间 6 */ 7 var setCookie = function (name, value, day) { 8 if(day !== 0){ //当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除 9 var expires = day * 24 * 60 * 60 * 1000; 10 var date = new Date(+new Date()+expires); 11 document.cookie = name + "=" + escape(value) + ";expires=" + date.toUTCString(); 12 }else{ 13 document.cookie = name + "=" + escape(value); 14 } 15 };
注意:expires使用GMT或UTC格式的时间, 我这里没有指定路径(path)和域(domain), 当没有指定路径时默认为当前路径下,如对 于“https://home.cnblogs.com/u/maderlzp/”下设置的cookie,其path为"/u/maderlzp", 其domain为当前域名“home.cnblogs.com”。
为什么有时候删除不了cookie? 可能是因为删除cookie时没有指定该cookie的path和domain,导致找不到这个cookie来设置过期时间而无法删除。
获取cookie:
1 /** 2 * 获取对应名称的cookie 3 * @param name cookie的名称 4 * @returns {null} 不存在时,返回null 5 */ 6 var getCookie = function (name) { 7 var arr; 8 var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); 9 if (arr = document.cookie.match(reg)) 10 return unescape(arr[2]); 11 else 12 return null; 13 };
cookie获取正则解析:
"(^| )" + name + "=([^;]*)(;|$)" (^| )匹配cookie开头或空格(cookie键值对之间用分号空格隔开),也就是cookie键值对的开始。接着是cookie的名称name,([^;]*)匹配除分号以外的任意字符,也就是cookie键值对的值。最后(;|$)匹配分号或整个cookie的结尾,也就是cooke键值对的结尾。
更多正则的语法详解请参考:
正则表达式的用法和常用实例【1】
删除cookie:
1 /** 2 * 删除cookie 3 * @param name cookie的名称 4 */ 5 var delCookie = function (name) { 6 setCookie(name, ' ', -1); 7 };
设置要删除的cookie的expires为过去的时间即可
修改cookie:
重新给cookie赋值就行,这样旧的就会被覆盖掉
cookie的主要作用:
Cookie主要用在以下三个方面:
- 会话状态管理(如用户登录状态、购物车、游戏分数和其它需要记录的信息)
- 个性化设置(如用户自定义设置、主题等)
- 浏览器行为跟踪(如跟踪分析用户行为)
cookie设置语法:
document.cookie = "cookieName=mader; expires=Fri, 31 Dec 2017 15:59:59 GMT; path=/mydir; domain=cnblogs.com; max-age=3600; secure=true";
- cookieName=mader :name=value,cookie的名称和值
- expires=Fri, 31 Dec 2017 15:59:59 GMT: expires,cookie过期的日期,如果没有定义,cookie会在对话结束时过期。日期格式为 new Date().toUTCString()
- path=/mydir: path=path (例如 '/', '/mydir') 如果没有定义,默认为当前文档位置的路径。
- domain=cnblogs.com: 指定域(例如 'example.com', '.example.com' (包括所有子域名), 'subdomain.example.com') 如果没有定义,默认为当前文档位置的路径的域名部分。
- max-age=3600: 文档被查看后cookie过期时间,单位为秒
- secure=true: cookie只会被https传输 ,即加密的https链接传输
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:vue.js
- javascript如何获取图片颜色 2020-03-08
- 分享JavaScript获取网页关闭与取消关闭的事件 2020-02-29
- 高效的获取当前元素是父元素的第几个子元素 2020-02-15
- JS怎么获取父节点 2020-02-14
- JS获取当前地理位置的方法 2020-01-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash