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


Posted in Javascript onApril 17, 2015

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代码如下:

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

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

Javascript 相关文章推荐
JavaScript 原型继承
Dec 26 Javascript
jquery 选取方法都有哪些
May 18 Javascript
javascript实现控制文字大中小显示
Apr 28 Javascript
javascript函数特点实例分析
May 14 Javascript
分享一些常用的jQuery动画事件和动画函数
Nov 27 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
利用types增强vscode中js代码提示功能详解
Jul 07 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 Javascript
JS实现简单的表格增删
Jan 16 Javascript
JavaScript实现点击图片换背景
Nov 20 Javascript
详解jQuery的核心函数和事件处理
Feb 18 jQuery
js获取当前日期时间及其它操作汇总
Apr 17 #Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 #Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 #Javascript
JS获取图片高度宽度的方法分享
Apr 17 #Javascript
JS替换字符串中空格方法
Apr 17 #Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
Apr 17 #Javascript
jQuery实现自定义事件的方法
Apr 17 #Javascript
You might like
PHP n个不重复的随机数生成代码
2009/06/23 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
js 创建书签小工具之理论
2011/02/25 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
python实现登录与注册系统
2020/11/30 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
初二政治教学反思
2014/01/12 职场文书
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
职业生涯规划书前言
2014/04/15 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
签订劳动合同通知书
2015/04/16 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书