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代码为:
复制代码 代码如下:
document.cookie="name="+username;
假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:
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(); }
读取cookies
function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) return unescape(arr[2]); else return null; }
删除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(); } //利用示例 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");