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 相关文章推荐
ExpressJS入门实例
Jan 14 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
Oct 21 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
Jul 11 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
js实现提交前对列表数据的增删改查
Jan 16 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
document.compatMode介绍
2009/05/21 Javascript
JavaScript 密码强度判断代码
2009/09/05 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python返回数组的索引实例
2019/11/28 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
Python sublime安装及配置过程详解
2020/06/29 Python
品学兼优的大学生自我评价
2013/09/20 职场文书
学校司机岗位职责
2013/11/14 职场文书
饭店工作计划书
2014/01/10 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
公司2015年终工作总结
2015/05/26 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
Golang: 内建容器的用法
2021/05/05 Golang
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android