发布时间:2008-11-20
点击:
来源:本站原创
录入者:佚名
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)//设置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

}
169

var cookieTest=new eyunCookie()
170

function 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>