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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
Mar 10 Javascript
用javascript控制iframe滚动的代码
Apr 10 Javascript
浅谈javascript语法和定时函数
May 03 Javascript
js简单实现图片延迟加载的方法
Jul 19 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
Oct 24 Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 Javascript
简单了解Vue computed属性及watch区别
Jul 10 Javascript
springboot+vue实现文件上传下载
Nov 17 Vue.js
深入理解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
如何开始收听短波广播
2021/03/01 无线电
Ajax PHP分页演示
2007/01/02 PHP
laravel学习教程之存取器
2016/07/30 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
javascript call方法使用说明
2010/01/11 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
python显示天气预报
2014/03/02 Python
跟老齐学Python之关于类的初步认识
2014/10/11 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
一行python实现树形结构的方法
2019/08/09 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
汽车专业学生自我评价
2014/01/19 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
艺术节开幕词
2015/01/28 职场文书
结婚典礼主持词
2015/06/29 职场文书
mysql优化
2021/04/06 MySQL