`
coolmaple
  • 浏览: 35015 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

js操作cookies的类

阅读更多

 

js 代码
  1. <script language=< span="">"JavaScript">   
  2.   
  3. function Cookie(delim){//操作Cookie类   
  4.     Array.prototype.splice=function(){   
  5.         var len=arguments.length,tarray=[],i=arguments[0]+arguments[1];   
  6.         if(len>1){   
  7.             while(i<this.length)tarray[tarray.length]=this[i++];   
  8.             this.length=arguments[0];   
  9.             if(len>2)for(var i=2;i<len;i++)< span="">this[this.length]=arguments;   
  10.             var tlen=tarray.length,i=0;   
  11.             while(i<tlen)< span="">this[this.length]=tarray[i++];   
  12.             }   
  13.         return this;   
  14.         }   
  15.     this._Cookie=[];   
  16.     this.Load=function(){   
  17.         if(document.cookie.indexOf(";")!=-1){   
  18.             var _sp,_name,_tp,_tars,_tarslength;   
  19.             var _item=document.cookie.split("; ");   
  20.             var _itemlength=_item.length;   
  21.             while(_itemlength>0){   
  22.                 _sp=_item[--_itemlength].split("=");   
  23.                 _name=_sp[0];   
  24.                 _tp=_sp[1].split(",");   
  25.                 _tars=_tp.slice(1,_tp.length);   
  26.                 this._Cookie[_name]=[];   
  27.                 this._Cookie[_name]=_tars;   
  28.                 this._Cookie[_name]["timeout"]=_tp[0];   
  29.                 }   
  30.             return true;   
  31.             }   
  32.         return false;   
  33.         }   
  34.     this.Save=function(){   
  35.         var _str,_ars,_mars,_marslength,timeout,i,key;   
  36.         for(key in this._Cookie){   
  37.             if(!this._Cookie[key])return;   
  38.             _str=[];   
  39.             _mars=CookieClass._Cookie[key];   
  40.             _marslength=_mars.length;   
  41.             for(i=0;i<_marslength;i++)_str[_str.length]=escape(_mars);   
  42.             document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+";expires="+new Date(parseInt(_mars["timeout"])).toGMTString();   
  43.             }   
  44.            
  45.         }   
  46.     this.GetCookieCount=function(){   
  47.         var _length=0,key;   
  48.         for(key in this._Cookie)_length++;   
  49.         return _length;   
  50.         }   
  51.     this.Create=function(name,days){   
  52.         this._Cookie[name]=[];   
  53.         this._Cookie[name]["timeout"]=new Date().getTime()+days*86400000;   
  54.         }   
  55.     this.Modify=function(name,days){   
  56.         this.Create(name,days);   
  57.         }   
  58.     this.GetTime=function(name){   
  59.         return new Date(parseInt(this._Cookie[name]["timeout"]));   
  60.         }   
  61.     this.Delete=function(name){   
  62.         this.Create(name,0);   
  63.         }   
  64.     this.AddItem=function(name,value){   
  65.         this._Cookie[name][this._Cookie[name].length]=value;   
  66.         }   
  67.     this.DelItem=function(name,index){   
  68.         this._Cookie[name].splice(index,1);   
  69.         }   
  70.     this.GetCount=function(name){   
  71.         return this._Cookie[name].length;   
  72.         }   
  73.     this.GetItem=function(name,index){   
  74.         return this._Cookie[name][index];   
  75.         }   
  76.     }   
  77. </script>  
  78. <script language=< span="">"JavaScript">   
  79. /*  
  80. ====================================  
  81. Design :flashsoft  
  82. ====================================  
  83. 浏览器能够通过Cookies保留有关数据。象Windows的注册表一样,用户不必知道Cookies的具体位置,浏览器能找到这些数据。第六代的浏览器,不管是IE还是NS都支持document.cookie属性。通过这个属性来读取或修改Cookies的值。不过Cookies的存储形式是非结构化的长字符串,需要经过相应的解析后才有意义。  
  84.  
  85. Cookies的表达如下,除了name=value以外,其它均为可选:  
  86. name=value;   
  87. expires=date;  
  88. domain=domainname  
  89. path=pathname;  
  90. secure;  
  91.  
  92. 例如:  
  93. User=HockeyDude; expires=Thu,01-Jan-70 00:00:01 GMT; domain=www.mydomain.com; path=/images; secure;  
  94. Pass=Gretzky; expires=Thu,01-Jan-70 00:00:01 GMT; domain=www.mydomain.com; path=/images; secure;  
  95.  
  96. 这么长的两个字符串只代表了两个Cookies。如果还要再加上电子信箱或其他信息就还得加长字符串。通常都是通过分解这样的字符串来取得各个变量或元素的。这实在是费时费力的事。  
  97.  
  98. 使用面向对象设计(Object Oriented Design,OOD)的思路来编写Cookies处理函数,其特点如下:  
  99.  
  100. 便于增删子项。这是很重要的,有些浏览器限制Cookies的使用数量。  
  101. 通过修改函数可以容易地修改时效数据。通常的做法很麻烦,要拷贝Cookies,删除原Cookies,修改并重写Cookies。  
  102. Cookies和它的子项存放在数组里。可以根据需要快速而有效地进行修改。这样也无须解析那长长的字符串。  
  103.  
  104. Cookies对象的使用  
  105. 以下是对象的公有方法:  
  106.  
  107. 方括号[]内是可选参数  
  108. //构造  
  109. Cookie([定界符,缺省为句点]) - 构造函数  
  110.  
  111. //初始化  
  112. GetCookieCount() - 返回Cookies数量  
  113. Create(name, days) - 创建Cookies及其时效天数  
  114. Modify(name, days) - 修改Cookies的时效天数  
  115. Delete(name) - 删除Cookies及其子项  
  116. GetTime(name) - 返回指定Cookies的过期时间  
  117. GetCount(name) - 返回Cookies的子项数量  
  118. AddItem(name,value) - 增加一个子项  
  119. GetItem(name,index) - 返回指定索引的子项  
  120. DelItem(name,index) - 删除指定的子项  
  121.  
  122. //存取  
  123. Load() - 读取Cookies  
  124. Save() - 存储Cookies  
  125.  
  126. 下面是应用实例:  
  127. */  
  128. var CookieClass=new Cookie();   
  129. if(!CookieClass.Load()){   
  130.     CookieClass.Create("Pass",1);   
  131.     CookieClass.Create("User",1);   
  132.     CookieClass.AddItem("Pass","Ps1");   
  133.     CookieClass.AddItem("Pass","Ps2");   
  134.     CookieClass.AddItem("Pass","Ps3");   
  135.     CookieClass.AddItem("Pass","Ps4");   
  136.     CookieClass.AddItem("Pass","Ps5");   
  137.     CookieClass.AddItem("Pass","Ps6");   
  138.     CookieClass.DelItem("Pass",1);   
  139.     CookieClass.Save();   
  140.     }   
  141. alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString());   
  142. alert(document.cookie);   
  143. </script>  
  144.   
  145. <script language=< span="">"Javascript">   
  146. function eyunCookie(){   
  147.     this.key="";//初始化key。   
  148.     this.value="";//初始化key's value。   
  149.     this.expires=0;//初始化cookie的有效时间,单位毫秒。   
  150.     this.init=function(){//对象初始化   
  151.         this.key="";   
  152.         this.value="";   
  153.         this.expires=0;   
  154.     }   
  155.     this.set=function(key,value,expires){//设置cookie   
  156.         if(this.key=="")this.key=key;   
  157.         if(this.value=="")this.value=value;   
  158.         if(this.expires<=0)this.expires=expires;   
  159.         if(this.key==""||typeof(this.key)!="string"){   
  160.             alert("请先设置欲保存的cookie名称!");   
  161.             this.init();   
  162.             return false;   
  163.         }   
  164.         if(this.key.match(/[,; ]/)){   
  165.             alert("cookie名称中不能包含“,”、“;”或空格!");   
  166.             this.init();   
  167.             return false;   
  168.         }   
  169.         if(this.value.toString().match(/[,; ]/)||typeof(this.value)=="undefined"){   
  170.             alert("cookie值中不能包含“,”、“;”或空格!");   
  171.             this.init();   
  172.             return false;   
  173.         }   
  174.         if(this.expires<=0||typeof(this.expires)!="number"){   
  175.             alert("请先正确设置cookie的有效时间!");   
  176.             this.init();   
  177.             return false;   
  178.         }   
  179.         var cookie=document.cookie;   
  180.         if(cookie.indexOf(this.key+"=")!=-1){   
  181.             if(!confirm("欲保存的cookie名称已经存在,是否要进行替换?")){   
  182.                 this.init();   
  183.                 return false;   
  184.             }   
  185.         }   
  186.         var dt=new Date();   
  187.         dt.setTime(dt.getTime()+this.expires);   
  188.         document.cookie=this.key+"="+this.value+";expires="+dt.toGMTString();   
  189.         this.init();   
  190.         return true;   
  191.     }   
  192.   
  193.     this.get=function(key){//取得名为key的cookie的值   
  194.         if(key==""||key.match(/[,; ]/)){   
  195.             alert("请正确设置欲查找的cookie名称!")   
  196.             return false;   
  197.         }   
  198.         var cookie=document.cookie;   
  199.         var start=cookie.indexOf(key+"=");   
  200.         if(start==-1){   
  201.             alert("欲查找的cookie不存在!")   
  202.             return false;   
  203.         }   
  204.         var end=cookie.indexOf(";",start);   
  205.         if(end==-1)end=cookie.length;   
  206.         var getCookie=cookie.substring(start+key.length+1,end);   
  207.         alert("cookie:"+key+"的值为"+getCookie);   
  208.         return getCookie;   
  209.     }   
  210.     this.showAll=function(){//显示所有cookie   
  211.         alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));   
  212.     }   
  213.     this.del=function(key){//删除名为key的cookie   
  214.         if(key==""||key.match(/[,; ]/)){   
  215.             alert("请正确设置欲删除的cookie名称!")   
  216.             return false;   
  217.         }   
  218.         var dt=new Date();   
  219.         dt.setTime(dt.getTime());   
  220.         document.cookie=key+"=eyunDelete;expires="+dt.toGMTString();   
  221.         this.init();   
  222.         return true;   
  223.     }   
  224.     this.destroy=function(){//销毁所有cookie   
  225.         var dt=new Date();   
  226.         dt.setTime(dt.getTime());   
  227.         while(document.cookie!=""){   
  228.             document.cookie=document.cookie+";expires="+dt.toGMTString();   
  229.             this.init();   
  230.             return true;   
  231.         }   
  232.     }   
  233. }   
  234. var cookieTest=new eyunCookie()   
  235. function settest(){   
  236.     cookieTest.key="test"  
  237.     cookieTest.value="ok"  
  238.     cookieTest.expires=31536000000   
  239.     cookieTest.set()   
  240. }   
  241.   
  242. </script>  

相关推荐

    js操作cookies类.pdf

    总结来说,`js操作cookies类.pdf`提供了JavaScript操作Cookies的一个自定义类实现,包括了加载、保存、获取Cookies数量以及创建新Cookies的基本功能。这个类可以帮助开发者更加方便地管理用户浏览器中的Cookies数据...

    js操作cookies类

    通过这个类,开发者可以更方便地管理和操作JavaScript中的Cookie,实现诸如用户设置、临时存储等应用场景。理解这个类的工作原理对于优化网站性能和用户体验至关重要,特别是在需要在客户端持久化数据时。

    js操作cookies类[文].pdf

    这个“js操作cookies类”文档介绍了一个JavaScript类,用于简化Cookies的操作,包括读取、写入和管理Cookies。以下是这个类的一些主要功能和方法的详细解释: 1. **Array.prototype.splice函数重写**: 这个类首先...

    cookiesjs让使用javascript超级简单得操作cookies在前端

    标题"cookiesjs让使用javascript超级简单得操作cookies在前端"和描述"cookies.js - 让使用javascript超级简单得操作cookies在前端"都指向一个名为`cookies.js`的库,这是一个专为前端JavaScript开发设计的库,旨在...

    javascript 操作cookies详解及实例.docx

    ### JavaScript 操作 Cookies 详解及实例 #### 一、引言 Cookies 是 Web 开发中一个重要的技术点,主要用于在客户端存储数据。通过使用 JavaScript,开发者可以在浏览器端方便地读取、设置或删除 Cookies,这对于...

    javascript对cookies的操作

    在JavaScript中操作Cookies,意味着我们可以读取、创建或删除Cookies,从而实现更加动态和个性化的网页体验。 ### 一、读取Cookies 在给定的部分内容中,`getCookie`函数用于从用户浏览器中读取特定名称的Cookie。...

    javascript 操作cookies及正确使用cookies的属性.docx

    ### JavaScript 操作 Cookies 及正确使用 Cookies 的属性 #### 一、Cookies 概述 Cookies 是一种用于在用户浏览器上存储小型数据的技术,通常用于跟踪用户的偏好设置、身份验证状态等。通过 JavaScript,开发者...

    js操作cookies

    内容js操作cookies,主要功能:添加cookies、读取cookies、删除cookies

    JS操作Cookies包括(读取添加与删除)

    掌握如何用JavaScript操作cookies对于Web开发人员来说是非常重要的。 **读取Cookies** 在JavaScript中读取cookie的值,需要理解document.cookie对象返回的是一个字符串,它包含了当前域名下所有的cookie信息。读取...

    cookiejs一个微小的JavaScript库简化了Cookies操作

    然而,原生JavaScript操作Cookie的方法相对繁琐,涉及`document.cookie`字符串的解析和构建,这在处理复杂场景时容易出错。 Cookie.js的出现,就是为了简化这一过程。它提供了一系列链式方法,如`.get()`、`.set()`...

    JS Cookies的设置 读取 删除

    JavaScript(简称JS)是网页开发中的重要脚本语言,它允许开发者在用户的浏览器端执行代码,其中Cookies是一种常见的数据存储机制。这篇博文“JS Cookies的设置、读取、删除”将探讨如何使用JavaScript来管理这些小...

    JS+cookies的购物车

    综上所述,这个"JS+Cookies的购物车"项目涉及了前端JavaScript的Cookies操作、C#的后端处理、ASP.NET框架的应用,以及代码分离的开发模式。理解并掌握这些技术,对于构建一个功能完善的电子商务网站至关重要。

    cookies.js插件

    "cookies.js插件"是一个专门用于JavaScript和jQuery环境下的插件,它提供了方便的方法来处理和操作浏览器中的cookies。这个插件旨在简化网页开发中对cookies的操作,使得开发者能够更加高效地管理用户的会话数据和...

    javascript写的操作cookies的函数汇总

    以上就是JavaScript操作cookies的基本方法。在实际应用中,可能还需要考虑其他因素,如安全性、跨域问题、存储大小限制等。例如,由于浏览器对单个cookie的大小和每个域名下的所有cookie数量有限制,因此在处理大量...

    【JavaScript】cookies详解

    本篇文章将详细讲解JavaScript操作Cookies的方法和应用场景。 一、Cookies的基本原理 Cookies是由服务器端设置,并由客户端(浏览器)存储的小型文本文件。每个Cookie都有一个唯一的名称和值,以及可选的属性,如...

    ASp Javascript读写Cookies的代码.docx

    #### 三、使用JavaScript操作Cookies 除了使用ASP.NET内置的方法外,还可以直接使用JavaScript来实现Cookies的操作。 ##### 写入Cookies ```javascript function SetCookie(name, value) { var Days = 30; var ...

    Cookies.js.zip

    Cookies.js 是一个客户端的 Cookie 操作的 JavaScript 库。 示例代码: // Setting a cookie value Cookies.set('key', 'value'); // Chaining sets together Cookies.set('key', 'value').set('hello', 'world'...

Global site tag (gtag.js) - Google Analytics