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 相关文章推荐
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
JavaScript获取flash对象与网上的有所不同
Apr 21 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
JS 终止执行的实现方法
Nov 24 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
vue中slot(插槽)的介绍与使用
Nov 12 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
js+canvas实现纸牌游戏
Mar 16 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 Javascript
Javascript柯里化实现原理及作用解析
Oct 22 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
php学习之function的用法
2012/07/14 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php实现webservice实例
2014/11/06 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
Python利用ansible分发处理任务
2015/08/04 Python
python记录程序运行时间的三种方法
2017/07/14 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
24式加速你的Python(小结)
2019/06/13 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
六道php面试题附答案
2014/06/05 面试题
酒店总经理职务说明书
2014/02/26 职场文书
青奥会口号
2014/06/12 职场文书
庆六一宣传标语
2014/10/08 职场文书
订货会邀请函
2015/01/31 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL