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 相关文章推荐
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
JQuery之focus函数使用介绍
Aug 20 Javascript
浅析JavaScript中的delete运算符
Nov 30 Javascript
jQuery搜索同辈元素方法
Feb 10 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
vue-cli3 取消eslint校验代码的解决办法
Jan 16 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
Feb 07 Javascript
vue使用nprogress加载路由进度条的方法
Jun 04 Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 Javascript
vscode中使用npm安装babel的方法
Aug 02 Javascript
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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
配置php网页显示各种语法错误
2013/09/23 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
python fabric使用笔记
2015/05/09 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python制作朋友圈九宫格图片
2019/11/03 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
医生自荐信
2013/10/11 职场文书
大学生最常用的自我评价
2013/12/07 职场文书
服装厂厂长职责
2013/12/16 职场文书
周年庆典主持词
2014/04/02 职场文书
感恩之星事迹材料
2014/05/03 职场文书
初中信息技术教学计划
2015/01/22 职场文书
邹越演讲观后感
2015/06/15 职场文书
妇产科护理心得体会
2016/01/22 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server