JavaScript设置、获取、清除单值和多值cookie的方法

 更新时间:2015年11月17日 10:49:34   投稿:mrr  
cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值,本文通过一段代码给大家介绍js设置、获取、清除单值和多值cookie的方法,需要的朋友一起学习吧

废话不多说了,直接给大家贴代码了。

具体代码如下:

var CookieUtil = (function () {
   var Cookie = function () {
     // 获取单值cookie
     this.get = function(name) {
       var start = document.cookie.indexOf(encodeURIComponent(name)) ;
       var end = document.cookie.indexOf(';', start) ;
       if(end == -) {
         end = document.cookie.length;
       }
       return decodeURIComponent(document.cookie.substring(start+name.length+,end));
     };
     // 设置单值cookie
     this.set = function(name, value, expires, path, domain, secure) {
       var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
       // 设置默认过期时间为七天
       if(expires == undefined) {
         var date = new Date();
         date.setTime(date.getTime() + ****);
         expires = date ;
       }
       if(expires instanceof Date) {
         cookieText += "; expires=" + expires.toGMTString();
       }
       if(path != undefined) {
         cookieText += "; path=" + path;
       }
       if(domain != undefined) {
         cookieText += "; domain" + domain;
       }
       if(secure != undefined) {
         cookieText += "; secure";
       }
       document.cookie = cookieText;
     };
     // 清除单值cookie
     this.unset = function(name, path, domain, secure) {
       this.set(name, '', new Date(), path, domain, secure );
     };
     // 设置多值cookie
     this.setAll = function(name, subCookies, expires, path, domain, secure) {
       var cookieText = ";" + encodeURIComponent(name) + "=",
       arr = new Array();
       for(var attr in subCookies) {
         arr.push([encodeURIComponent(attr)] + ":" + encodeURIComponent(subCookies[attr]));
       } 
       this.set(name, arr.join('&'), expires, path, domain, secure);
     };
     // 获取多值cookie
     this.getAll = function(name) {
       var obj = {};
       var arr = this.get(name).split('&');
       for(var i = , len = arr.length; i < len; i++) {
         var tmpArr = arr[i].split(':');
         obj[decodeURIComponent(tmpArr[])] = decodeURIComponent(tmpArr[]);
       }
       return obj;
     };
     // 获取多值cookie的子cookie
     this.getSub = function(name, subname) {
       var obj = this.getAll(name);
       return obj[subname];
     };
     // 清除指定的多值cookie
     this.unsetAll = function(name,path,domain,secure) {
       this.unset(name, '', new Date(), path, domain, secure);
     };
     // 清除指定多值cookie的子cookie
     this.unsetSub = function(name, subname,path, domain, secure) {
       var obj = this.getAll(name);
       delete obj[subname];
       this.setAll(name, obj, null, path, domain, secure);
     };
   };
   return new Cookie();
 })();

 以上代码就是本文给大家介绍JavaScript设置、获取、清除单值和多值cookie的方法,有哪里不清楚的地方欢迎给我留言。

相关文章

  • JS+HTML实现的圆形可点击区域示例【3种方法】

    JS+HTML实现的圆形可点击区域示例【3种方法】

    这篇文章主要介绍了JS+HTML实现的圆形可点击区域,结合实例形式分析了javascript结合HTML元素属性实现一个圆形的可点击区域相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • JavaScript Array.from及其相关用法详解(示例演示)

    JavaScript Array.from及其相关用法详解(示例演示)

    Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array.from的基本用法、实际场景中的应用,以及它如何与其他JavaScript特性相结合提升代码的简洁性和可读性,感兴趣的朋友一起看看吧
    2025-03-03
  • 浅析JavaScript中变量提升的原理与使用

    浅析JavaScript中变量提升的原理与使用

    前端的小伙伴大概都知道,js中的var变量存在变量提升,在es6以后随着let变量的出现,变量提升问题得以解决,那么变量提升的原理是什么,es6又是怎么解决变量提升问题的,下面我们来共同探寻答案
    2023-05-05
  • 基于javascript实现碰撞检测

    基于javascript实现碰撞检测

    这篇文章主要为大家详细介绍了基于javascript实现碰撞检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 解决layUI的页面显示不全的问题

    解决layUI的页面显示不全的问题

    今天小编就为大家分享一篇解决layUI的页面显示不全的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 禁用页面部分JavaScript方法的具体实现

    禁用页面部分JavaScript方法的具体实现

    方法重写,重写要禁用的方法,并让它什么也不做,结果证明真的可行,但并不知道是不是一个科学的方法,我拿出来与大家共同讨论一下
    2013-07-07
  • JavaScript实现异步任务循环顺序执行详解

    JavaScript实现异步任务循环顺序执行详解

    这篇文章主要为大家详细介绍了JavaScript中实现异步任务循环顺序执行的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-03-03
  • JavaScript 实现下雪特效的示例代码

    JavaScript 实现下雪特效的示例代码

    这篇文章主要介绍了JavaScript 实现下雪特效的示例代码,帮助大家利用JavaScript制作特效,感兴趣的朋友可以了解下
    2020-09-09
  • 利用 JavaScript 实现并发控制的示例代码

    利用 JavaScript 实现并发控制的示例代码

    这篇文章主要介绍了利用 JavaScript 实现并发控制的示例代码,本文通过实例代码给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • javascript 在网页中的运用(asp.net)

    javascript 在网页中的运用(asp.net)

    javascript在网页中的运用实现,需要的朋友可以参考下。
    2009-11-11

最新评论