JS set cookie, read cookie, delete cookie

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:

 

Copy the code The code is as follows:

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326340095&siteId=291194637