250 JS设置cookie、读取cookie、删除cookie

news/2024/5/18 15:46:00 标签: JS设置cookie, 读取cookie, 删除cookie, js, cookie

JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。

cookie是运行在客户端的,所以可以用JS来设置cookie.

假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和cookie>读取cookie呢?

首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。

cookie>JS设置cookie:

假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为:

代码如下:
document.cookie="name="+username;

JScookie>读取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();

}

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

}

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

以上所述就是本文的全部内容了,希望大家能够喜欢。


http://www.niftyadmin.cn/n/1383773.html

相关文章

三层框架2

一、CURD实例的应用 1、GetModel 获取查询唯一记录的结果 UserInfor user UserInforDAL.m_UserInforDal.GetModel(string.Format("UserName{0} and Pwd{1}", username, pwd)); 2、GetCount 获取查询的记录数 int count UserInforDAL.m_UserInf…

《Pointers On C》读书笔记(第一章 快速上手)

1.C语言是一种自由格式的程序设计语言,没有规则要求我们必须如何书写语句。然而,如果我们在编写程序时能够遵守一些约定还是非常值得的,它可以使代码更加容易阅读和修改。另外,预处理命令有较为严格的规则。 2&#xf…

251 PHP请求二次返回结果模拟代码

<?php function aa($a) {if($a 1){return 1;}static $failed_number 1;if($failed_number 2){return 2;}$failed_number;return aa($a); }var_dump(aa(3));/*注释&#xff1a;这不是个病句&#xff0c;if里面可以看做是否请求成功&#xff0c;例如你请求一个东西是否返回…

执行上下文

本文转载&#xff1a;https://www.qianduan.net/js-the-hardcore-execution-context/ 放在这里&#xff0c;只是为了查看方便 先看个例子: console.log(a) console.log(foo()) var a hello worldfunction foo() { console.log(foo) } 估计大部分人早就对这种问题了如指掌…

【算法编程】两个栈实现队列

题目来源&#xff1a;牛客网剑指offer 题目描述&#xff1a;用两个栈来实现一个队列&#xff0c;完成队列的Push和Pop操作。 队列中的元素为int类型。 Python&#xff1a;42ms 5624k# -*- coding:utf-8 -*- class Solution:def __init__(self):self.stack1 []self.stack2 []d…

Android编程心得-在任意类中获取当前屏幕宽高

进行Android编程时&#xff0c;很多时候都需要获取当前屏幕的宽度与高度&#xff0c;但是当我们需要在别的类中调用屏幕宽高时&#xff0c;直接用原来的方法是不行的&#xff0c;下面我来介绍如何在任意类中调用宽度高度的两种方法。 public void getScreenHW(Context context)…

A new start

学习前端已经有一年多&#xff0c;也自己写过不少博客、笔记&#xff0c;但是比较不开心的是有时候自己写的博客自己都看不懂&#xff0c;所以最后决定重新开一个博客&#xff0c;目标是写能让别人看懂也能让自己看懂的东西&#xff0c;那才算真成功真的懂了。最后希望的是自己…

252 php 报 Not Found The requested URL /index.php was not found on this server.怎么办?

https://blog.csdn.net/wanganji5252/article/details/81736807 转载自这里 Not Found The requested URL /index.php was not found on this server. 看提示是URL地址错误。原因是没有设置服务器地址重写&#xff0c;或者是设置了.htaccess文件&#xff0c;但没有打开重写功…