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 相关文章推荐
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
javascript中substr,substring,slice.splice的区别说明
Nov 25 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
Aug 27 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
Nov 17 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
Vue表单验证插件的制作过程
Apr 01 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
May 09 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 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
Php中使用Select 查询语句的实例
2014/02/19 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
用python实现一个简单的验证码
2020/12/09 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
教师应聘个人求职信
2013/12/10 职场文书
百日安全活动总结
2014/05/04 职场文书
中国梦读书活动总结
2014/07/10 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
欢迎词范文
2015/01/27 职场文书
协议书范文
2015/01/27 职场文书
亮剑观后感300字
2015/06/05 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电