JS写的cookie类
1
<script language="JScript">2
function 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">70
var CookieClass=new Cookie();71
if(!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
}80
alert("Cookie过期时间:"+CookieClass.GetTime("Pass").toLocaleString());81
alert(document.cookie);82
</script>83
<script>84
function 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)//设置cookie94
{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"));}//显示所有cookie149
this.del=function(key)//删除名为key的cookie150
{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()//销毁所有cookie161
{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 true167
}168
}169
var cookieTest=new eyunCookie()170
function settest()171
{cookieTest.key="test"172
cookieTest.value="ok"173
cookieTest.expires=31536000000174
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>