转自:微点阅读  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. cookie的原理及作用以及如何设置、读取和删除cookie

    cookie:存储数据,当用户访问了某个网站(网页)的时候,我们就通过cookie来向访问者电脑上存储数据 不同的浏览器存放的cookie位置不一样,也是不能通用的. cookie的存储是一域名的形式 ...

  2. JS设置,获取,删除cookie

    JS设置,获取,删除cookie 由于chrome等浏览器存在samesite安全措施,导致传统http页面后端无法设置cookie到前端,所以考虑在返回值中添加cookie值,使用前端js进行coo ...

  3. Web前端数据存储—cookie机制(设置,获取,删除cookie)

    今天看到cookie机制就来记录一下,我们前端一般存储cookie都是在登录的时候进行的,两种,选一个就行(其实都一样,只不过一个明细化了). 我们先了解一下 cookie: HTTPCookie,通 ...

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

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

  5. 微信公众号删除cookie失败,cookie设置了过期时间不管用,微信公众号cookie比较诡异,删不掉,解决办法,原生JS封装cookie统一操作删除cookie,读取cookie,删除cookie

    公司有个项目,需求是这样的: pc 端的项目,有一个步骤可以在手机上操作,页面都在同一个域名下面,但是pc端需要登录(用到了 cookie ),公众号端不需要登录(不用 cookie ) ,不清楚服务 ...

  6. jquery页面跳转带cookie_JS 如何创建、读取和删除cookie

    Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法.例如,当用户访问咱们的站点时,可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问咱们的站点时,应用程序就可 ...

  7. reactjs 设置、修改、删除cookie

    // 设置cookie export function setCookie (c_name, value, expiremMinutes) {const exdate = new Date();exd ...

  8. php cookie expires,php cookie类(设置、获取、删除cookie值)

    分享一个php cookie操作的类,可以设置cookie.获取cookie.删除cookie. 代码: /** * php cookie类 * class:PHP_COOKIE * by www.j ...

  9. Go设置、获取和删除Cookie

    Go操作Cookie // A Cookie represents an HTTP cookie as sent in the Set-Cookie header of an // HTTP resp ...

  10. 顶级域名和二级域名共享cookie及相互删除cookie

    在CSDN看到一个cookie设置domain时,如何删除的问题, 自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和dom ...

最新文章

  1. 写论文神器APEX-NET:自动重新绘制图像
  2. shell脚本不暂停进程,暂停几秒执行下一条shell命令
  3. 《Python Cookbook 3rd》笔记(3.5):字节到大整数的打包与解包
  4. jvm相关參数,调优
  5. 搭建mediawiki开始知识共享
  6. c语言答案纪纲,重庆理工大学C语言程序设计基础教程习题答案(纪纲金艳).doc
  7. This iPhone 6s is running iOS 11.3.1 (15E302), which may not be supported by this version of Xcode.
  8. 物联网老年人健康管理系统源码
  9. Microsoft Office Word一打开文档就弹出样式小窗口
  10. Linksys e3200初试tomato系统
  11. 2020论文阅读:Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
  12. 电子计算机属于输出设备的是,下列设备属于输入设备 下列设备中属于输出设备的是 A.键盘 B.鼠标 C.显示器 D.扫描仪...
  13. watershed 算法原理以及skimage/opencv中的使用
  14. TI高精度实验室-运算放大器-第十六节-全差分放大器
  15. 使用CNNs网络,基于caltech 101数据集实现分类
  16. cpu要和gpu搭配吗_高端显卡一定要配高档CPU吗?
  17. sprintf, snprintf, _snprintf, sprintf_s 等的区别
  18. lammps案例:fix indent命令实现纳米摩擦及摩擦力计算
  19. 一个没有任何基础的人,怎样入门编程,成为程序员?
  20. linux inode使用率过高,解决inode占用过多

热门文章

  1. 营收净利双下滑,高鑫零售重构大卖场的底气在哪?
  2. 跟随CSDN走进微软
  3. python基础语法(缩进规则)
  4. 解决Pycharm专业版卡顿、运行内存不足,修改配置最大内存常见问题。
  5. 【产品人生】<提升产品认知>互联网思维与格局
  6. 文本检索系统-7:软件和数据
  7. validation engine
  8. 电脑任务管理器锁定计算机怎么关掉,怎样处理win7电脑任务管理器被锁定
  9. freeswitch实现监听_基于freeswitch的智能外呼2-自定义freeswitch模块
  10. 微信收藏夹文件保存在服务器安全吗,开启这个功能,微信文件再也不怕过期