JavaScript中cookie工具函数封装的示例代码


Posted in Javascript onOctober 11, 2016

一. 语法

1.1 获取当前页面的所有cookie:

var allCookies = document.cookie;

allCookies 是一个字符串,其中包含了以分号分隔的cookie列表字符串 (即 key=value 键值对)。

1.2 写一个新cookie:

document.cookie = updatedCookie;

updatedCookie是一个键值对形式的字符串。只能用这个方法一次设置或更新一个cookie,而且写入并不是覆盖,而是添加。例如:

document.cookie = "fontSize=14";
document.cookie = "fontSize=16";
document.cookie = "fontColor=black";

document.cookie; // fontSize=16;fontColor=black

1.3 可选属性:

除了Cookie本身的内容,还有一些可选的属性也是可以写入的,定义cookie的设定/更新,跟着一个分号以作分隔:

Set-Cookie: value[; expires=date][; domain=domain][; path=path][; secure]

     (1) path=path (例如 ‘/', ‘/mydir') 如果没有定义,默认为当前文档位置的路径。

     (2) domain=domain (例如 ‘example.com', ‘.example.com' (包括所有子域名), ‘subdomain.example.com') 如果没有定义,默认为当前文档位置的路径的域名部分。

     (3) max-age=max-age-in-seconds (例如一年为606024*365)

     (4) expires=date-in-GMTString-format 如果没有定义,cookie会在对话结束时过期。这个值的格式参见Date.toUTCString() 。

     (5) secure (cookie只通过https协议传输) cookie的值字符串可以用encodeURIComponent()来保证它不包含任何逗号、分号或空格(cookie值中禁止使用这些值)。

二. cookie的接口封装:

var cookieUtil = {
  // 设置cookie
  setItem: function(name, value, days) {
    var date=new Date();
    date.setDate(date.getDate()+days);
    document.cookie=name+'='+value+';expires='+date;
  },

  // 获取cookie
  getItem: function(name) {
     var arr=document.cookie.replace(/\s/g, "").split(';');
     for(var i=0;i<arr.length;i++) {
       var tempArr=arr[i].split('=');
       if(tempArr[0]==name) {
        return decodeURIComponent(tempArr[1]);
       }
     }
     return '';
  },

  // 删除cookie
  removeItem: function(name) {
    this.setItem(name,'1', -1);
  },

  // 检查是否含有某cookie
  hasItem: function(name) {
    return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(name).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
  },

  // 获取全部的cookie列表
  getAllItems: function() {
    var cookieArr = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
    for (var nIdx = 0; nIdx < cookieArr.length; nIdx++) { cookieArr[nIdx] = decodeURIComponent(cookieArr[nIdx]); }
    return cookieArr;
  }
};

总结

以上就是JavaScript中cookie工具函数封装的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JavaScript 入门·JavaScript 具有全范围的运算符
Oct 01 Javascript
javascript温习的一些笔记 基础常用知识小结
Jun 22 Javascript
Js 去掉字符串中的空格(实现代码)
Nov 19 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
ActiveX控件与Javascript之间的交互示例
Jun 04 Javascript
javascript中with()方法的语法格式及使用
Aug 04 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
Feb 10 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
Apr 01 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 Javascript
整理一下常见的IE错误
Nov 18 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
JavaScript实现图片合成下载的示例
Nov 19 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 #Javascript
Bootstrap轮播插件使用代码
Oct 11 #Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
Oct 11 #Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 #Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 #Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 #Javascript
javascript 动态样式添加的简单实现
Oct 11 #Javascript
You might like
jQuery 源码分析笔记
2011/05/25 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python使用matplotlib绘制热图
2018/11/07 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
Pandas中resample方法详解
2019/07/02 Python
python属于软件吗
2020/06/18 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
自荐信的五个重要部分
2013/10/29 职场文书
生物技术研究生自荐信
2013/11/12 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
经济担保书范文
2014/04/02 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python