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实现无刷新更新数据的详细步骤 asp
Dec 26 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
Aug 01 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
1秒50万字!js实现关键词匹配
Aug 01 Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
Jun 25 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
Sep 10 Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 Javascript
简单了解JavaScript弹窗实现代码
May 07 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
js实现放大镜特效
2017/05/18 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
python动态性强类型用法实例
2015/05/09 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python温度转换实例分析
2018/01/17 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
python适合做数据挖掘吗
2020/06/16 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
药品质量检测应届生求职信
2013/11/14 职场文书
回门宴答谢词
2014/01/13 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
保护校园环境倡议书
2015/04/28 职场文书
学习心得体会
2019/06/20 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android