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 相关文章推荐
一个js实现的所谓的滑动门
May 23 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
Dec 30 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
js实现select下拉框菜单
Dec 08 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
JS中的进制转换以及作用
Jun 26 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
JavaScript使用ZeroClipboard操作剪切板
May 10 Javascript
js设置随机切换背景图片的简单实例
Nov 12 Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
vue.draggable实现表格拖拽排序效果
Dec 01 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
PHP学习 运算符与运算符优先级
2008/06/15 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python迭代器的使用方法实例
2013/11/21 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
详解Python:面向对象编程
2019/04/10 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
英国电器零售商:PRC Direct
2018/06/21 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
计算机科学与技术专业求职信
2014/09/03 职场文书
四年级学生期末评语
2014/12/26 职场文书
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
Elasticsearch 数据类型及管理
2022/04/19 Python