javascript 操做cookies詳解javascript
這段操做cookies的方法我使用好久了,可是一直一來沒遇到什麼問題,今天在作一個在第一個頁面保存了cookies,第二個頁面獲取或者第三個頁面獲取的功能中,發現了方法的侷限性,好比,第一個頁面路徑爲 http://xxxxx/cyb-car2016/h5OfficeWorker/index,第二個頁面路徑爲 http://xxxxx/cyb-car2016/h5AlertController/index,其中除了域名是同樣以外,還有一個命名空間不同,而cookies是默認保存在當前頁面下,因此在第一個頁面中保存了cookies,由於保存的路徑不一樣,第二個頁面會獲取不到cookies。 解決方法是,在保存cookies的時候,設置一下path,document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/"; ,其中path=/表示保存在域名路徑下,全局可用java
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
|
/***********************操做cookies的方法***************************/
//寫cookies
//這是有設定過時時間的使用示例:
//s20是表明20秒
//h是指小時,如12小時則是:h12
//d是天數,30天則:d30
function
setCookie(name,value,time){
var
strsec = getsec(time);
var
exp =
new
Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name +
"="
+ escape (value) +
";expires="
+ exp.toGMTString()+
";path=/"
;
}
//讀取cookies
function
getCookie(name){
var
arr,reg=
new
RegExp(
"(^| )"
+name+
"=([^;]*)(;|$)"
);
if
(arr=document.cookie.match(reg))
return
unescape(arr[2]);
else
return
false
;
}
// 刪除cookies
function
delCookie(name){
var
exp =
new
Date();
exp.setTime(exp.getTime() - 1);
var
cval=getCookie(name);
if
(cval!=
null
)
document.cookie= name +
"="
+cval+
";expires="
+exp.toGMTString()+
";path=/"
;
}
function
getsec(str){
//alert(str);
var
str1=str.substring(1,str.length)*1;
var
str2=str.substring(0,1);
if
(str2==
"s"
)
{
return
str1*1000;
}
else
if
(str2==
"h"
)
{
return
str1*60*60*1000;
}
else
if
(str2==
"d"
)
{
return
str1*24*60*60*1000;
}
}
//獲取Cookie
//var name = getCookie("name");
//var phone = getCookie("phone");
//
//if(phone != ""){
// $("input[name=phone]").val(phone);
//}
//if(name!="false"){
// $("input[name=name]").val(name);
//}
/***********************操做cookies的方法***************************/
|
感謝閱讀,但願能幫助到你們,謝謝你們對本站的支持!cookie