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 解析多维的Json数据格式
Nov 02 Javascript
javascript读写json示例
Apr 11 Javascript
15款jQuery分布引导插件分享
Feb 04 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
简单的渐变轮播插件
Jan 12 Javascript
微信小程序 向左滑动删除功能的实现
Mar 10 Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 Javascript
js通过Date对象实现倒计时动画效果
Oct 27 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 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
关于时间计算的结总
2006/12/06 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
工程管理造价应届生求职信
2013/11/13 职场文书
财务管理专业自荐信范文
2013/12/24 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
市场营销求职信范文
2014/02/21 职场文书
物理学专业自荐信
2014/06/11 职场文书
捐助感谢信
2015/01/22 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS