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 - HTML的request类
Jan 09 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
Nov 11 Javascript
JS中toFixed()方法引起的问题如何解决
Nov 20 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
javascript生成大小写字母
Jul 03 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
微信小程序 http请求的session管理
Jun 07 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
Vue3.0数据响应式原理详解
Oct 09 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/08/08 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
详解Python中的日志模块logging
2015/06/19 Python
python简单猜数游戏实例
2015/07/09 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
python asyncio 协程库的使用
2021/01/21 Python
什么是事务?事务有哪些性质?
2012/03/11 面试题
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
数据员岗位职责
2013/11/19 职场文书
公司活动策划方案
2014/01/13 职场文书
大学毕业感言一句话
2014/02/06 职场文书
谢师宴家长致辞
2015/07/27 职场文书
教师节领导致辞
2015/07/29 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python