JavaScript写的cookie类

来源:互联网 发布:地瓜网络嗅探器免费版 编辑:程序博客网 时间:2024/05/16 23:53
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><title>Eclipse.org Software User Agreement</title></head><body lang="EN-US" link=blue vlink=purple><h2>Eclipse.org Software User Agreement</h2><p>15<sup>th</sup> June, 2011</p><script language="JScript">function Cookie(delim){    this._Cookie=[];    this.Load=function(){        if(document.cookie.indexOf(";")!=-1){            var _sp,_name,_tp,_tars,_tarslength;            var _item=document.cookie.split("; ");            var _itemlength=_item.length;            while(_itemlength>0){                _sp=_item[--_itemlength].split("=");                _name=_sp[0];                _tp=_sp[1].split(",");                _tars=_tp.slice(1,_tp.length);                this._Cookie[_name]=[];                this._Cookie[_name]=_tars;                this._Cookie[_name]["timeout"]=_tp[0];                }            return true;            }        return false;        }    this.Save=function(){        var _str,_ars,_mars,_marslength,timeout,i,key;        for(key in this._Cookie){            if(!this._Cookie[key])return;            _str=[];            _mars=CookieClass._Cookie[key];            _marslength=_mars.length;            for(i=0;i<_marslength;i++)_str[_str.length]=escape(_mars[i]);            document.cookie=key+"="+_mars["timeout"]+(_str.length>0?",":"")+_str+(_mars["timeout"]==0?"":";expires="+new Date(parseInt(_mars["timeout"])).toGMTString());            }                }    this.GetCookieCount=function(){        var _length=0,key;        for(key in this._Cookie)_length++;        return _length;        }    this.Create=function(name,days){        days=days?days:0;        if(!this._Cookie[name])this._Cookie[name]=[];        this._Cookie[name]["timeout"]=days!=0?new Date().getTime()+parseInt(days)*86400000:0;        }    this.Modify=function(name,days){        this.Create(name,days);        }    this.GetTime=function(name){        return new Date(parseInt(this._Cookie[name]["timeout"]));        }    this.Delete=function(name){        this.Create(name,0);        }    this.AddItem=function(name,value){        this._Cookie[name][this._Cookie[name].length]=value;        }    this.DelItem=function(name,index){        var _ttime=this._Cookie[name]["timeout"];        this._Cookie[name]=this._Cookie[name].slice(0,index).concat(this._Cookie[name].slice(parseInt(index)+1,this._Cookie[name].length));        this._Cookie[name]["timeout"]=_ttime;        }    this.GetCount=function(name){        return this._Cookie[name].length;        }    this.GetItem=function(name,index){        return this._Cookie[name][index];        }    }</script><script language="JScript">var CookieClass=new Cookie();if(!CookieClass.Load()){    CookieClass.Create("Pass",1);    CookieClass.AddItem("Pass","Ps1");    CookieClass.AddItem("Pass","Ps2");    CookieClass.AddItem("Pass","Ps3");    CookieClass.AddItem("Pass","Ps4");    CookieClass.DelItem("Pass",1);    CookieClass.Save();    }alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString());alert(document.cookie);</script>    <script>function eyunCookie()  {this.key="";//初始化key。   this.value="";//初始化key's value。   this.expires=0;//初始化cookie的有效时间,单位毫秒。     this.init=function()//对象初始化                 {this.key="";                this.value="";                this.expires=0;                              }     this.set=function(key,value,expires)//设置cookie              {if(this.key=="")this.key=key;                             if(this.value=="")this.value=value;                             if(this.expires<=0)this.expires=expires;                             if(this.key==""||typeof(this.key)!="string")                 {alert("请先设置欲保存的cookie名称!");                                  this.init();                  return false;                 }               if(this.key.match(/[,; ]/))                 {alert("cookie名称中不能包含“,”、“;”或空格!");                                  this.init();                  return false;                 }               if(this.value.toString().match(/[,; ]/)||typeof(this.value)=="undefined")                 {alert("cookie值中不能包含“,”、“;”或空格!");                                  this.init();                  return false;                 }               if(this.expires<=0||typeof(this.expires)!="number")                 {alert("请先正确设置cookie的有效时间!");                                  this.init();                  return false;                 }               var cookie=document.cookie;               if(cookie.indexOf(this.key+"=")!=-1)                 {if(!confirm("欲保存的cookie名称已经存在,是否要进行替换?"))                                    {this.init();                                         return false;                                        }                                     }               var dt=new Date();               dt.setTime(dt.getTime()+this.expires);                             document.cookie=this.key+"="+this.value+";expires="+dt.toGMTString();                             this.init();               return true;              }     this.get=function(key)//取得名为key的cookie的值              {if(key==""||key.match(/[,; ]/))                 {alert("请正确设置欲查找的cookie名称!")                  return false;                 }               var cookie=document.cookie;               var start=cookie.indexOf(key+"=");               if(start==-1)                 {alert("欲查找的cookie不存在!")                  return false;                 }               var end=cookie.indexOf(";",start);                             if(end==-1)                               end=cookie.length;               var getCookie=cookie.substring(start+key.length+1,end);               alert("cookie:"+key+"的值为"+getCookie);               return getCookie;              }   this.showAll=function(){alert("共有以下cookie对:\n"+document.cookie.split(";").toString().replace(/,/g,"\n"));}//显示所有cookie   this.del=function(key)//删除名为key的cookie              {if(key==""||key.match(/[,; ]/))                 {alert("请正确设置欲删除的cookie名称!")                  return false;                 }                             var dt=new Date();               dt.setTime(dt.getTime());                             document.cookie=key+"=eyunDelete;expires="+dt.toGMTString();                             this.init();               return true;              }   this.destroy=function()//销毁所有cookie                    {var dt=new Date();                   dt.setTime(dt.getTime());                                     while(document.cookie!="")                                       document.cookie=document.cookie+";expires="+dt.toGMTString();                                     this.init();                                     return true                                    }  }var cookieTest=new eyunCookie()function settest(){cookieTest.key="test" cookieTest.value="ok" cookieTest.expires=31536000000 cookieTest.set()}</script><input type=button onclick=cookieTest.showAll() value=read><input type=button value=setA><input type=button value=setTest><input type=button 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> </body></html>