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;  

JS读取cookie:

假设cookie中存储的内容为:name=jack;password=123
var cookie=document.cookie;
console.log(cookie);
这两句是获全部信息,账户和密码!(主页面写)
------------------------------------------------------------------------------------------- 则在B页面中获取变量username的值的JS代码如下: 字符串的分割要按照自己的实际情况: 我的是 "&" "=", 数组下标也是按照自己的修改 []
var username=document.cookie.split("&")[1].split("=")[1];
console.log(username);
我直接使用这2句就获取到了登陆界面(asp.net)的用户名到    主页面上(html);

****************************************************************************************************
//JS操作cookies方法! //写cookies function setCookie(name,value)
{
var Days = ;
var exp = new Date();
exp.setTime(exp.getTime() + Days****);
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[]);
else
return null;
} //删除cookies
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - );
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*);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str)
{
alert(str);
var str1=str.substring(,str.length)*;
var str2=str.substring(,);
if (str2=="s")
{
return str1*;
}
else if (str2=="h")
{
return str1***;
}
else if (str2=="d")
{
return str1****;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30 setCookie("name","hayden","s20");
  

最新文章

  1. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
  2. T-SQL:毕业生出门需知系列(二)
  3. 【java基础学习】IO流
  4. Autumn is a second spring when every leaf is a flower.
  5. 解决Dialog 消失,输入法不消失的问题
  6. wp 处理方法
  7. Umbraco Form需要引用些客户端dependencies (jquery)
  8. SQL Server 2008启用sa账户
  9. js控件位置
  10. Java集合源码分析(三)Vevtor和Stack
  11. 选项卡js版封装
  12. Python-函数小结
  13. SQL语句原理解析(原创)
  14. 【视频】使用ASP.NET Core开发GraphQL服务
  15. 【Python】This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck
  16. .Net Core文件上传
  17. Java中判断对象是否为空的方法
  18. thinkcmf 忘记后台登陆密码的解决办法
  19. MT【228】整数解的个数
  20. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解

热门文章

  1. ASA-有关AAA用户登录的问题
  2. NOIP2016换教室 BZOJ 4720
  3. Codeforces Round #600 (Div. 2) - D. Harmonious Graph(并查集)
  4. 使用IDEA导入一个Maven风格的SSM项目
  5. MySQL高级 InnoDB 和 MyISAM 的区别
  6. uniGUI之UniSyntaxEdit(24)
  7. ThinkPHP6源码分析之应用初始化
  8. Win10中小娜无法搜索本地应用
  9. day5-2正则表达式
  10. ANSYS-MFC生成APDL