|
JS写的cookie类
<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"> //Cookie类测试 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 } }
//eyunCookie类测试 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 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> 2006-7-18 13:00:18
Posted by jser | 阅读全文() | 回复(0) | 引用通告() | 编辑
|