JS写的Cookie类

1 < scriptlanguage = " 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 < scriptlanguage = " 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'svalue。
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<
分享到:
评论

你可能感兴趣的:(cookie)