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 06 Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 Javascript
深入分析JQuery和JavaScript的异同
Oct 23 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
纯原生js实现贪吃蛇游戏
Apr 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
优化PHP代码的53条建议
2008/03/27 PHP
PHP insert语法详解
2008/06/07 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
语义化 H1 标签
2008/01/14 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
python3访问sina首页中文的处理方法
2014/02/24 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
给我一面国旗 python帮你实现
2019/09/30 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
python里glob模块知识点总结
2021/01/05 Python
python time.strptime格式化实例详解
2021/02/03 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
质检员岗位职责
2013/12/17 职场文书
理想演讲稿范文
2014/05/21 职场文书
三人合伙协议书范本
2014/10/29 职场文书
财务人员个人工作总结
2015/02/27 职场文书
求职推荐信范文
2015/03/27 职场文书
Python保存并浏览用户的历史记录
2022/04/29 Python