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 相关文章推荐
js控制滚动条缓慢滚动到顶部实现代码
Mar 20 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 Javascript
优化javascript的执行效率一些方法总结
Dec 25 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
Dec 25 Javascript
jquery检测input checked 控件是否被选中的方法
Mar 26 Javascript
js+html5实现canvas绘制镂空字体文本的方法
Jun 05 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
Dec 14 Javascript
通过js动态创建标签,并设置属性方法
Feb 24 Javascript
JS中自定义事件的使用与触发操作实例分析
Nov 01 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 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中设置index.php文件为只读的方法
2013/02/06 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
js编写选项卡效果
2017/05/23 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
es6数值的扩展方法
2019/03/11 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
原生js生成图片验证码
2020/10/11 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
使用Python实现画一个中国地图
2019/11/23 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Python分类测试代码实例汇总
2020/07/23 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
计算机个人求职信范例
2014/01/24 职场文书
工程质量月活动方案
2014/02/19 职场文书
论文评语大全
2014/04/29 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书