站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题JavaScript写的Cookie类

JavaScript写的Cookie类

摘要: JavaScript写的Cookie类
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible"> <table class="border" cellspacing="0" cellpadding="0" width="100%" border="0"><tr><td></td></tr></table><table class="pageLighter" cellspacing="11" cellpadding="0" width="100%" border="0"><tr><td class="content" style="WORD-BREAK: break-all">
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>
</td></tr></table>
</textarea>
↑返回目录
前一篇: 值得收藏的JavaScript代码
后一篇: javascript函数库:ArrayList.js