北漂IT民工 的博客

一个实用的javascript的Cookie类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124

var Cookie = function(name, val, expires, path, domain, secure){

path = path || null;

domain = domain || null;

secure = secure || false;

function set(key, value){

var str = key + "=" + escape(value);

if(expires > 0){

var date = new Date();

var ms = expires * 60 * 1000;

date.setTime(date.getTime() + ms);

str += ";expires=" + date.toGMTString();

}

if(path) str += ";path=" + path;

if(domain) str += ";domain=" + domain;

if(secure) str += ";true";

document.cookie = str;

return str;

}

function get(key){

key = key || name;

var strArray = document.cookie.split(';');

for(var i = 0; i < strArray.length; i++)

{

var tmp = strArray[i].split('=');

if(trim(tmp[0]) == trim(key)){

return unescape(tmp[1]);

}

}

return "";

}

function remove(key){

var date = new Date();

var ms = 1000;

date.setTime(date.getTime() - ms);

var str = name + "=nothing;expires=" + date.toGMTString();

document.cookie = str;

}

function setExt(key, value){

switch(key){

case 'path':

path = value;

break;

case 'domain':

domain = value;

break;

case 'secure':

secure = value;

break;

case 'expires':

expires = value;

break;

default:

set(key, value);

break;

}

}

return {

get: get,

set: setExt,

remove: remove

}

}

调用方法:

1
2
3
4
5
6
7
8
9
10

var cookieName = 'my_cookie';

var cookie = Cookie(cookieName, 1);

cookie.set(cookieName, 1);

cookie.remove(cookieName);

cookie.get(cookieName)