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基础学习资料
Nov 23 Javascript
jQuery学习总结之jQuery事件
Jun 30 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 Javascript
jQuery层次选择器用法示例
Sep 09 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
vue.js todolist实现代码
Oct 29 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 Javascript
JS事件绑定的常用方式实例总结
Mar 02 Javascript
小程序云函数调用API接口的方法
May 17 Javascript
JS实现4位随机验证码
Oct 19 Javascript
Ant-design-vue Table组件customRow属性的使用说明
Oct 28 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 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
PHP速成大法
2015/01/30 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
JavaScript this关键字的深入详解
2021/01/14 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
python自动安装pip
2014/04/24 Python
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Pytorch之contiguous的用法
2019/12/31 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
高中校园广播稿
2014/01/11 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
社团活动总结
2014/04/28 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
车贷收入证明范本
2014/09/14 职场文书
财政局个人年终总结
2015/03/03 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python