JavaScript 是运行在客户端的脚本,因此一般是不能够设置 Session 的,因为 Session 是运行在服务器端的。
而 cookie 是运行在客户端的,所以可以用 JS 来设置 cookie.
假设有这样一种情况,在某个用例流程中,由 A 页面跳至 B 页面,若在 A 页面中采用 JS 用变量 temp 保存了某一变量的值,在 B 页面的时候,同样需要使用 JS 来引用 temp 的变量值,对于 JS 中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用 cookie 来保存该变量的值,那么如何来设置和读取 cookie 呢?
首先需要稍微了解一下 cookie 的结构,简单地说:cookie 是以键值对的形式保存的,即 key=value 的格式。各个 cookie 之间一般是以 ";" 分隔。
JS 设置 cookie:
假设在 A 页面中要保存变量 username 的值 ("jack") 到 cookie 中, key 值为 name,则相应的 JS 代码为:复制代码代码如下:
假设 cookie 中存储的内容为:name=jack;password=123
则在 B 页面中获取变量 username 的值的 JS 代码如下:
1
2
3
4
5
6
7
8
9
10
|
var
";")[0].split("=")[1];
// 写 cookies
function
{
var Days = 30;
var exp = new Date();
"="+ escape (value) + ";expires="
}
|
读取 cookies
1
2
3
4
5
6
7
8
|
function getCookie(name)
{
var arr,reg=new RegExp("(^|)"+name+"=([^;]*)(;|$)");
if
return unescape(arr[2]);
else
return null;
}
|
删除 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
|
function delCookie(name)
{
var exp = new Date();
var
if(cval!=null)
"="+cval+";expires="+exp.toGMTString(); }
// 使用示例
setCookie("name","hayden");
alert(getCookie("name"));
// 程序代码
function
{
var
var exp = new Date();
"="+ escape (value) + ";expires="
}
function getsec(str)
{
alert(str);
var
var
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 秒
setCookie("name","hayden","s20");
|
来源: http://www.bubuko.com/infodetail-2437591.html