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 相关文章推荐
jQuery 使用手册(七)
Sep 23 Javascript
JQuery核心函数是什么及使用方法介绍
May 03 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
mui 打开新窗口的方式总结及注意事项
Aug 20 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
Sep 12 Javascript
面包屑导航详解
Dec 07 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
浅谈vue项目打包优化策略
Sep 29 Javascript
深入理解令牌认证机制(token)
Aug 22 Javascript
vue基础知识--axios合并请求和slot
Jun 04 Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 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简单获取复选框值的方法
2016/05/11 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
Python入门篇之编程习惯与特点
2014/10/17 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
了解一下python内建模块collections
2020/09/07 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
电大会计学自我鉴定
2014/02/06 职场文书
绩效工资实施方案
2014/03/15 职场文书
英语系毕业生求职信
2014/07/13 职场文书
被告答辩状范文
2015/05/22 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
python开发人人对战的五子棋小游戏
2022/05/02 Python