zoukankan      html  css  js  c++  java
  • JS写的Cookie类

      1<script language="JScript"> 
      2function Cookie(delim){ 
      3    this._Cookie=[]; 
      4    this.Load=function(){ 
      5        if(document.cookie.indexOf(";")!=-1){ 
      6            var _sp,_name,_tp,_tars,_tarslength; 
      7            var _item=document.cookie.split(""); 
      8            var _itemlength=_item.length; 
      9            while(_itemlength>0){ 
     10                _sp=_item[--_itemlength].split("="); 
     11                _name=_sp[0]; 
     12                _tp=_sp[1].split(","); 
     13                _tars=_tp.slice(1,_tp.length); 
     14                this._Cookie[_name]=[]; 
     15                this._Cookie[_name]=_tars; 
     16                this._Cookie[_name]["timeout"]=_tp[0]; 
     17                } 
     18            return true
     19            } 
     20        return false
     21        } 
     22    this.Save=function(){ 
     23        var _str,_ars,_mars,_marslength,timeout,i,key; 
     24        for(key in this._Cookie){ 
     25            if(!this._Cookie[key])return
     26            _str=[]; 
     27            _mars=CookieClass._Cookie[key]; 
     28            _marslength=_mars.length; 
     29            for(i=0;i<_marslength;i++)_str[_str.length]=escape(_mars[i]); 
     30            document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+(_mars["timeout"]==0?"":";expires="+new Date(parseInt(_mars["timeout"])).toGMTString()); 
     31            } 
     32         
     33        } 
     34    this.GetCookieCount=function(){ 
     35        var _length=0,key; 
     36        for(key in this._Cookie)_length++
     37        return _length; 
     38        } 
     39    this.Create=function(name,days){ 
     40        days=days?days:0
     41        if(!this._Cookie[name])this._Cookie[name]=[]; 
     42        this._Cookie[name]["timeout"]=days!=0?new Date().getTime()+parseInt(days)*86400000:0
     43        } 
     44    this.Modify=function(name,days){ 
     45        this.Create(name,days); 
     46        } 
     47    this.GetTime=function(name){ 
     48        return new Date(parseInt(this._Cookie[name]["timeout"])); 
     49        } 
     50    this.Delete=function(name){ 
     51        this.Create(name,0); 
     52        } 
     53    this.AddItem=function(name,value){ 
     54        this._Cookie[name][this._Cookie[name].length]=value; 
     55        } 
     56    this.DelItem=function(name,index){ 
     57        var _ttime=this._Cookie[name]["timeout"]; 
     58        this._Cookie[name]=this._Cookie[name].slice(0,index).concat(this._Cookie[name].slice(parseInt(index)+1,this._Cookie[name].length)); 
     59        this._Cookie[name]["timeout"]=_ttime; 
     60        } 
     61    this.GetCount=function(name){ 
     62        return this._Cookie[name].length; 
     63        } 
     64    this.GetItem=function(name,index){ 
     65        return this._Cookie[name][index]; 
     66        } 
     67    } 
     68</script> 
     69<script language="JScript"> 
     70var CookieClass=new Cookie(); 
     71if(!CookieClass.Load()){ 
     72    CookieClass.Create("Pass",1); 
     73    CookieClass.AddItem("Pass","Ps1"); 
     74    CookieClass.AddItem("Pass","Ps2"); 
     75    CookieClass.AddItem("Pass","Ps3"); 
     76    CookieClass.AddItem("Pass","Ps4"); 
     77    CookieClass.DelItem("Pass",1); 
     78    CookieClass.Save(); 
     79    } 
     80alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString()); 
     81alert(document.cookie); 
     82</script> 
     83    <script> 
     84function eyunCookie() 
     85  {this.key="";//初始化key。 
     86   this.value="";//初始化key's value。 
     87   this.expires=0;//初始化cookie的有效时间,单位毫秒。 
     88     this.init=function()//对象初始化 
     89                 {this.key=""
     90                this.value=""
     91                this.expires=0
     92                              } 
     93   this.set=function(key,value,expires)//设置cookie 
     94              {if(this.key=="")this.key=key; 
     95                             if(this.value=="")this.value=value; 
     96                             if(this.expires<=0)this.expires=expires; 
     97                             if(this.key==""||typeof(this.key)!="string"
     98                 {alert("请先设置欲保存的cookie名称!"); 
     99                                  this.init(); 
    100                  return false
    101                 } 
    102               if(this.key.match(/[,; ]/)) 
    103                 {alert("cookie名称中不能包含“,”、“;”或空格!"); 
    104                                  this.init(); 
    105                  return false
    106                 } 
    107               if(this.value.toString().match(/[,; ]/)||typeof(this.value)=="undefined"
    108                 {alert("cookie值中不能包含“,”、“;”或空格!"); 
    109                                  this.init(); 
    110                  return false
    111                 } 
    112               if(this.expires<=0||typeof(this.expires)!="number"
    113                 {alert("请先正确设置cookie的有效时间!"); 
    114                                  this.init(); 
    115                  return false
    116                 } 
    117               var cookie=document.cookie; 
    118               if(cookie.indexOf(this.key+"=")!=-1
    119                 {if(!confirm("欲保存的cookie名称已经存在,是否要进行替换?")) 
    120                                    {this.init(); 
    121                                         return false
    122                                        }                     
    123                 } 
    124               var dt=new Date(); 
    125               dt.setTime(dt.getTime()+this.expires); 
    126                             document.cookie=this.key+"="+this.value+";expires="+dt.toGMTString(); 
    127                             this.init(); 
    128               return true
    129              } 
    130   this.get=function(key)//取得名为key的cookie的值 
    131              {if(key==""||key.match(/[,; ]/)) 
    132                 {alert("请正确设置欲查找的cookie名称!"
    133                  return false
    134                 } 
    135               var cookie=document.cookie; 
    136               var start=cookie.indexOf(key+"="); 
    137               if(start==-1
    138                 {alert("欲查找的cookie不存在!"
    139                  return false
    140                 } 
    141               var end=cookie.indexOf(";",start); 
    142                             if(end==-1
    143                               end=cookie.length; 
    144               var getCookie=cookie.substring(start+key.length+1,end); 
    145               alert("cookie:"+key+"的值为"+getCookie); 
    146               return getCookie; 
    147              } 
    148   this.showAll=function(){alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));}//显示所有cookie 
    149   this.del=function(key)//删除名为key的cookie 
    150              {if(key==""||key.match(/[,; ]/)) 
    151                 {alert("请正确设置欲删除的cookie名称!"
    152                  return false
    153                 } 
    154                             var dt=new Date(); 
    155               dt.setTime(dt.getTime()); 
    156                             document.cookie=key+"=eyunDelete;expires="+dt.toGMTString(); 
    157                             this.init(); 
    158               return true
    159              } 
    160   this.destroy=function()//销毁所有cookie 
    161                    {var dt=new Date(); 
    162                   dt.setTime(dt.getTime()); 
    163                                     while(document.cookie!=""
    164                                       document.cookie=document.cookie+";expires="+dt.toGMTString(); 
    165                                     this.init(); 
    166                                     return true 
    167                                    } 
    168  } 
    169var cookieTest=new eyunCookie() 
    170function settest() 
    171{cookieTest.key="test" 
    172 cookieTest.value="ok" 
    173 cookieTest.expires=31536000000 
    174 cookieTest.set() 
    175
    176</script> 
    177<input type=button onclick=cookieTest.showAll() value=read><input type=button onclick="cookieTest.set('a','test',31536000000)" value=setA><input type=button onclick="settest();" value=setTest><input type=button onclick="cookieTest.destroy()" value=clear><input type=button onclick=cookieTest.get("test") value=gettest><input type=button onclick=cookieTest.get("a") value=geta><input type=button onclick=cookieTest.set("test",1,31536000000) value=resetTest><input type=button onclick=cookieTest.del("test") value=delTest> 
  • 相关阅读:
    生成一个平面矩形网格文件
    生成球 使用openMesh 库
    U盘安装可能会遇见UEFI的问题,使用easyBCD安装即可。
    vs 代码格式化
    跨域问题的出现和解决
    代理服务器的作用 和 推荐
    sublime user 配置
    git 大佬的相关配置
    win10 注册
    【BZOJ3566】—概率充电器(树形+概率dp)
  • 原文地址:https://www.cnblogs.com/Dicky/p/147840.html
Copyright © 2011-2022 走看看