转自:微点阅读 https://www.weidianyuedu.com

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

则在B页面中获取变量username的值的JS代码如下:

?

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();

}

读取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;

}

删除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();

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");

JS如何设置cookie、读取cookie及删除cookie相关推荐

  1. php删除cookie值,php如何删除cookie

    php删除cookie的方法:1.将cookie的值设置为空,语句为"setcookie('cookiename', '')或者setcookie(cookiename, NULL);&qu ...

  2. html页面怎么删除cookie,javascript中怎么删除cookie?

    当web服务器向浏览器发送网页后,连接被关闭,服务器会忘记用户的一切.Cookie是为了解决"如何记住用户信息"而发明的.有时为了我们的信息安全需要删除Cookie,我们该如何做呢 ...

  3. Cookie的常用方法、删除Cookie的方式

    删除浏览器中的Cookie 在cookie的API中没有提供直接将cookie删除的方法, 可以通过别的方式间接删除cookie 代码示例:删除名称为cart的cookie: 可以向浏览器再发送一个同 ...

  4. php cookie被赋值,php删除cookie反倒被赋值为deleted 解决办法

    php删除cookie反倒被赋值为deleted 解决办法 原因是: 如果遇到用户客户端的电脑本地时间 比当前服务器时间少1年以上,IE浏览器就会出现这种情况.这种情况会致使用户永远点击退出退出不了. ...

  5. 前端js设置,读取,删除cookie及其简洁写法

    设置cookie function setCookie(name, value,days) {//三个参数,一个是cookie的名子,一个是值,最后一个是天数var exp = new Date(); ...

  6. php 删除cookie有效方法

    php 删除cookie有效方法 关于删除cookie的说明开始----- bool setcookie ( string name [, string value [, int expire [, ...

  7. JavaScript 删除Cookie

    删除Cookie 如果cookie的max-age属性的值为0,则表示删除该cookie.cookie机制没有提供删除方法,因此通过设置该cookie即时失效实现删除cookie的效果.失效的cook ...

  8. 删除浏览器浏览器删除cookie方法

    上班之余抽点时光出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下删除浏览器 文章目录导航 适用范围及演示工具 什么是cookie? cookie有什么作用? ie6/ie7/ie8 ...

  9. java serlet清空cookie_Java如何在Servlet中删除Cookie?

    Servlet API没有提供直接的方法来删除Servlet应用程序中的cookie.如果要删除cookie,则必须创建一个与要删除的cookie具有相同名称的cookie,并将其值设置为空字符串.您 ...

  10. JS设置cookie、读取cookie、删除cookie

    js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦!下面是详细代码,如有错误,请留言指正! JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Sess ...

最新文章

  1. 【组合取补集】数三角形 @CQOI2014/BZOJ3505/upcexam3843
  2. ajax二级联动源代码,Ajax二级联动菜单实现原理及代码
  3. 横跨2017-2018,云效Work Like Alibaba系列直播第五期盛大开启
  4. Permission denied (publickey) 解决方案
  5. 全网首发:LINUX编译JNA:编译产生jna.jar
  6. TCP_NODELAY详解
  7. Java程序性能优化技巧
  8. Part I. S1. 模糊集及其运算
  9. SAP成都研究院飞机哥:程序猿和飞机的不解之缘
  10. 海思HI3798M GPIO和PWM操作
  11. 被炫龙DD3plus的insyde h20 bios整天了一整天分享分享解决问题经验
  12. 超简单使用阿里云注册商标
  13. 中国粮食安全问题及其应对措施
  14. 柳传志:想过得富有光鲜就要知道为啥穷
  15. 论文所涉及公司简介是否需要查重?
  16. 物联网与无线传感器网络期末考试复习资料(教材--刘伟荣,何云--电子工业出版社)
  17. python pymssql - pymssql模块官方文档的翻译
  18. ERROR: Failed to resolve: com.github
  19. mac怎么设置桌面提醒|mac系统提醒事项设置闹钟方法
  20. 实现《C++程序设计语言(特别版)》第6章 表达式和语句 - 桌面计算器 - Linux

热门文章

  1. 《高效休息法》读后感
  2. Java参数传递(值传递还是引用传递)
  3. Python数据可视化系列之幂律分布
  4. 1000行代码写小游戏(五)
  5. docker部署java服务
  6. ESXI系统盘制作及安装和添加虚拟机操作步骤
  7. Android 实现多语言
  8. 最是一年留不住,彩云易散琉璃碎---补题模拟,深搜广搜简单题
  9. 微信小程序 - - 聊天室
  10. DHCP应用——获取下挂设备列表信息