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 相关文章推荐
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
Aug 22 Javascript
JavaScript静态类型检查工具FLOW简介
Jan 06 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
Feb 27 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
Jul 27 Javascript
JavaScript对象数组排序实例方法浅析
Jun 15 Javascript
javascript简单实现等比例缩小图片的方法
Jul 27 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
Sep 28 Javascript
JS如何操作DOM基于表格动态展示数据
Oct 15 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解决的一个栈的面试题
2014/07/02 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
php封装的page分页类完整实例
2016/10/18 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
React简单介绍
2017/05/24 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python多线程编程(五):死锁的形成
2015/04/05 Python
python实现红包裂变算法
2016/02/16 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
python实现XML解析的方法解析
2019/11/16 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
优秀信贷员先进事迹
2014/01/31 职场文书
励志演讲稿800字
2014/08/21 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
避暑山庄导游词
2015/02/04 职场文书
大学教师个人总结
2015/02/10 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
python实现双链表
2022/05/25 Python