JavaScript is a script that runs on the client side, so it is generally impossible to set a Session, because the Session runs on the server side.
The cookie is run on the client side, so you can use JS to set the cookie.
Suppose there is such a situation, in a certain use case process, jump from page A to page B. If JS is used in page A to save the value of a variable with variable temp, in page B, JS also needs to be used To refer to the variable value of temp, the life cycle of global variables or static variables in JS is limited. When the page jumps or the page is closed, the values of these variables will be reloaded, that is, the effect of saving is not achieved. The best solution to this problem is to use a cookie to save the value of the variable, so how to set and read the cookie?
First of all, you need to have a little understanding of the structure of cookies. Simply put: cookies are stored in the form of key-value pairs, that is, the format of key=value. Each cookie is generally separated by ";".
JS sets cookies:
Assuming that the value of the variable username ("jack") is to be saved in the cookie in page A, and the key value is name, the corresponding JS code is:
document.cookie="name="+username;
JS reads cookies:
Suppose the content stored in the cookie is: name=jack;password=123
Then the JS code to get the value of the variable username in page B is as follows:
1
2
3
4
5
6
7
8
9
10
|
var
username=document.cookie.split(
";"
)[0].split(
"="
)[1];
//JS操作cookies方法!
//写cookies
function
setCookie(name,value)
{
var
Days = 30;
var
exp =
new
Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name +
"="
+ escape (value) +
";expires="
+ exp.toGMTString();
}
|
read cookies
1
2
3
4
5
6
7
8
|
function
getCookie(name)
{
var
arr,reg=
new
RegExp(
"(^| )"
+name+
"=([^;]*)(;|$)"
);
if
(arr=document.cookie.match(reg))
return
unescape(arr[2]);
else
return
null
;
}
|
delete cookies
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
|
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();
}
//使用示例
setCookie(
"name"
,
"hayden"
);
alert(getCookie(
"name"
));
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
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();
}
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;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
setCookie(
"name"
,
"hayden"
,
"s20"
);
The original text is transferred from: https://www.cnblogs.com/endv/p/8089506.html
|