JavaScript设置、获取、清除单值和多值cookie的方法


Posted in Javascript onNovember 17, 2015

废话不多说了,直接给大家贴代码了。

具体代码如下:

var CookieUtil = (function () {
   var Cookie = function () {
     // 获取单值cookie
     this.get = function(name) {
       var start = document.cookie.indexOf(encodeURIComponent(name)) ;
       var end = document.cookie.indexOf(';', start) ;
       if(end == -) {
         end = document.cookie.length;
       }
       return decodeURIComponent(document.cookie.substring(start+name.length+,end));
     };
     // 设置单值cookie
     this.set = function(name, value, expires, path, domain, secure) {
       var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
       // 设置默认过期时间为七天
       if(expires == undefined) {
         var date = new Date();
         date.setTime(date.getTime() + ****);
         expires = date ;
       }
       if(expires instanceof Date) {
         cookieText += "; expires=" + expires.toGMTString();
       }
       if(path != undefined) {
         cookieText += "; path=" + path;
       }
       if(domain != undefined) {
         cookieText += "; domain" + domain;
       }
       if(secure != undefined) {
         cookieText += "; secure";
       }
       document.cookie = cookieText;
     };
     // 清除单值cookie
     this.unset = function(name, path, domain, secure) {
       this.set(name, '', new Date(), path, domain, secure );
     };
     // 设置多值cookie
     this.setAll = function(name, subCookies, expires, path, domain, secure) {
       var cookieText = ";" + encodeURIComponent(name) + "=",
       arr = new Array();
       for(var attr in subCookies) {
         arr.push([encodeURIComponent(attr)] + ":" + encodeURIComponent(subCookies[attr]));
       } 
       this.set(name, arr.join('&'), expires, path, domain, secure);
     };
     // 获取多值cookie
     this.getAll = function(name) {
       var obj = {};
       var arr = this.get(name).split('&');
       for(var i = , len = arr.length; i < len; i++) {
         var tmpArr = arr[i].split(':');
         obj[decodeURIComponent(tmpArr[])] = decodeURIComponent(tmpArr[]);
       }
       return obj;
     };
     // 获取多值cookie的子cookie
     this.getSub = function(name, subname) {
       var obj = this.getAll(name);
       return obj[subname];
     };
     // 清除指定的多值cookie
     this.unsetAll = function(name,path,domain,secure) {
       this.unset(name, '', new Date(), path, domain, secure);
     };
     // 清除指定多值cookie的子cookie
     this.unsetSub = function(name, subname,path, domain, secure) {
       var obj = this.getAll(name);
       delete obj[subname];
       this.setAll(name, obj, null, path, domain, secure);
     };
   };
   return new Cookie();
 })();

 以上代码就是本文给大家介绍JavaScript设置、获取、清除单值和多值cookie的方法,有哪里不清楚的地方欢迎给我留言。

Javascript 相关文章推荐
Prototype使用指南之string.js
Jan 10 Javascript
JQuery 网站换肤功能实现代码
Nov 02 Javascript
js倒计时抢购实例
Dec 20 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
不能不知道的10个angularjs英文学习网站
Mar 23 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
JS实现页面进入和返回定位到具体位置
Dec 08 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
解决在vue项目中webpack打包后字体不生效的问题
Sep 01 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
每天一篇javascript学习小结(RegExp对象)
Nov 17 #Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
Nov 17 #Javascript
js全选按钮的实现方法
Nov 17 #Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 #Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 #Javascript
jquery表单验证需要做些什么
Nov 17 #Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 #Javascript
You might like
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
PHP实现验证码校验功能
2017/11/16 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
《颐和园》教学反思
2014/02/26 职场文书
总账会计岗位职责
2014/03/13 职场文书
劳资协议书范本
2014/04/23 职场文书
个人授权委托书范本
2014/09/14 职场文书
音乐教师求职信范文
2015/03/20 职场文书
英语导游欢迎词
2015/09/30 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书