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连接多个数组不用concat来解决
Mar 24 Javascript
通过Jquery的Ajax方法读取将table转换为Json
May 31 Javascript
Javascript调用函数方法的几种方式介绍
Mar 20 Javascript
javascript入门教程基础篇
Nov 16 Javascript
easyui tree带checkbox实现单选的简单实例
Nov 07 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 Javascript
深入学习Bootstrap表单
Dec 13 Javascript
angularjs2中父子组件的数据传递的实例代码
Jul 05 Javascript
分分钟学会vue中vuex的应用(入门教程)
Sep 14 Javascript
解决npm管理员身份install时出现权限的问题
Mar 16 Javascript
vue-router路由模式详解(小结)
Aug 26 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 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
怎样在php中使用PDF文档功能
2006/10/09 PHP
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
php实现购物车功能(上)
2020/07/23 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
JS date对象的减法处理实现代码
2010/12/28 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python中作用域的深入讲解
2018/12/10 Python
Django接收自定义http header过程详解
2019/08/23 Python
使用Python发现隐藏的wifi
2020/03/04 Python
python和go语言的区别是什么
2020/07/20 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
自我鉴定范文300字
2013/10/01 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
解决numpy和torch数据类型转化的问题
2021/05/23 Python