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>