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 相关文章推荐
情人节专属 纯js脚本1k大小的3D玫瑰效果
Feb 11 Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
javascript制作游戏开发碰撞检测的封装代码
Mar 31 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
概述javascript在Google IE中的调试技巧
Nov 24 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
vue中实现左右联动的效果
Jun 22 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
微信小程序实现购物页面左右联动
Feb 15 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
Jul 22 Javascript
VUE 组件转换为微信小程序组件的方法
Nov 06 Javascript
js实现QQ邮箱邮件拖拽删除功能
Aug 27 Javascript
每天一篇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 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
情人节活动策划方案
2014/02/27 职场文书
会计核算科岗位职责
2014/03/19 职场文书
《学棋》教后反思
2014/04/14 职场文书
工伤赔偿协议书
2014/04/15 职场文书
电话客服工作职责
2014/07/27 职场文书
安全责任书范文
2014/08/25 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技
Nginx如何配置根据路径转发详解
2022/07/23 Servers