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 显示*天*时*分*秒实现时间计时器
May 07 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
详解express与koa中间件模式对比
Aug 07 Javascript
javascript 产生随机数的几种方法总结
Sep 26 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
jquery.pager.js分页实现详解
Jul 29 jQuery
序列化模块json代码实例详解
Mar 03 Javascript
javascript实现贪吃蛇经典游戏
Apr 10 Javascript
Vue实现购物车实例代码两则
May 30 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中的MVC模式运用技巧
2007/05/03 PHP
php遍历目录方法小结
2015/03/10 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python写入CSV文件的方法
2015/07/08 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
基于Python的OCR实现示例
2020/04/03 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
英语专业学生的自我评价
2013/12/30 职场文书
保密普查工作实施方案
2014/02/25 职场文书
硕士生找工作求职信
2014/07/05 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL