在网页客户端,我们经常会遇到读取或者设置cookie的情况,如果用纯生的js我们可能会遇到一些兼容性带来的麻烦,这里给大家介绍一个比较实用jquery操作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
|
jQuery.cookie =
function
(name, value, options) {
if
(
typeof
value !=
'undefined'
) {
options = options || {};
if
(value ===
null
) {
value =
''
;
options = $.extend({}, options);
options.expires = -1;
}
var
expires =
''
;
if
(options.expires && (
typeof
options.expires ==
'number'
|| options.expires.toUTCString)) {
var
date;
if
(
typeof
options.expires ==
'number'
) {
date =
new
Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
}
else
{
date = options.expires;
}
expires =
'; expires='
+ date.toUTCString();
}
var
path = options.path ?
'; path='
+ (options.path) :
''
;
var
domain = options.domain ?
'; domain='
+ (options.domain) :
''
;
var
secure = options.secure ?
'; secure'
:
''
;
document.cookie = [name,
'='
, encodeURIComponent(value), expires, path, domain, secure].join(
''
);
}
else
{
var
cookieValue =
null
;
if
(document.cookie && document.cookie !=
''
) {
var
cookies = document.cookie.split(
';'
);
for
(
var
i = 0; i < cookies.length; i++) {
var
cookie = jQuery.trim(cookies[i]);
if
(cookie.substring(0, name.length + 1) == (name +
'='
)) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break
;
}
}
}
return
cookieValue;
}
};
|
具体用法如下:
1、设置cookie的值,比如我们要设置变量名为userid对应值为123的cookie,代码如下:
1
|
$.cookie(
'userid'
,
'123'
);
|
2、新建一个cookie,并设置cookie的有效期 路径 域名等,代码如下:
1
|
$.cookie(
'userid, '
123
', {expires: 7, path: '
/
', domain: '
jquery.com', secure:
true
});
|
注意:如果去掉后面{}的参数,新建后将以默认设置生效。
3、删除cookie,即把对应cookie值置为null,代码如下:
1
|
$.cookie(
'userid'
,
null
);
|
4、读取cookie,如读取变量名为userid的cookie值,代码如下:
1
|
var
uId= $.cookie(
'userid'
);
|
怎么样,用jquery来操作cookie是不是很简单,你不用自己写太多的js,也不用为那些兼容性发愁,一切就这么顺利。