JavaScript中cookie工具函数封装的示例代码

 更新时间:2016年10月11日 11:50:42   作者:子匠_Zijor  
这篇文章给大家主要介绍了JavaScript中cookie工具函数的封装,文中给出了详细的实现步骤和示例代码,相信会对大家的理解很有帮助,有需要的朋友们下面来一起看看吧。

一. 语法

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工具函数封装的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • JS正则表达式常见用法实例详解

    JS正则表达式常见用法实例详解

    这篇文章主要介绍了JS正则表达式常见用法,结合实例形式分析了javascript元字符、分组符、修饰符、量词基本含义,并结合具体案例形式分析了javascript正则基本使用技巧,需要的朋友可以参考下
    2018-06-06
  • echarts大屏字体自适应的方法步骤

    echarts大屏字体自适应的方法步骤

    这篇文章主要介绍了echarts大屏字体自适应的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • js入门之Function函数的使用方法【新手必看】

    js入门之Function函数的使用方法【新手必看】

    本篇文章主要介绍js Function函数的使用方法,应该对初学Js的朋友们会有所帮助,下面就随小编一起来看下吧
    2016-11-11
  • 用于table内容排序

    用于table内容排序

    用于table内容排序...
    2006-07-07
  • js工具方法弹出蒙版

    js工具方法弹出蒙版

    js工具方法弹出蒙版,需要的朋友可以参考一下
    2013-05-05
  • Js中获取frames中的元素示例代码

    Js中获取frames中的元素示例代码

    本文为大家介绍下使用js获取父frame元素及获取子frame元素的实现代码,有需求的朋友可以参考下,希望对大家有所
    2013-07-07
  • JavaScript监测ActiveX控件是否已经安装过的代码

    JavaScript监测ActiveX控件是否已经安装过的代码

    这是通用的方法,只需要把唯一的Activex的clsid和任意一个属性或方法名传进来就可以判断了。(找了两个小时才找到 -_-!)
    2008-09-09
  • JavaScript使用arcgis实现截图截屏功能

    JavaScript使用arcgis实现截图截屏功能

    这篇文章主要为大家详细介绍了JavaScript如何使用arcgis实现截图截屏功能,类似于qq截图,文中的示例代码讲解详细,需要的可以参考一下
    2024-01-01
  • 教您去掉ie网页加载进度条的方法

    教您去掉ie网页加载进度条的方法

    相信很多同仁做的系统后到都是用frameset或iframe来加载不同页面的,不可不知道大家有没有注意到,当frame框架中的页面已经加载完成后,可是ie浏览器的状态栏还会一直显示一个正在加载的状态。
    2010-12-12
  • JS实现两个大数(整数)相乘

    JS实现两个大数(整数)相乘

    大数,即超出语言所能表示的数字最大范围的数字,那么如何实现两个大数相乘呢?下面有个不错的方法,大家可以参考下
    2014-04-04

最新评论