在網頁客戶端,我們經常會遇到讀取或者設置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,也不用為那些兼容性發愁,一切就這么順利。