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 DIV弹出效果实现代码
Jul 03 Javascript
js解析与序列化json数据(三)json的解析探讨
Feb 01 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
May 16 Javascript
Javascript 引擎工作机制详解
Nov 30 Javascript
基于javascript实现的购物商城商品倒计时实例
Dec 11 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
ionic2懒加载配置详解
Sep 01 Javascript
JavaScript使用小插件实现倒计时的方法讲解
Mar 11 Javascript
jQuery实现小火箭返回顶部特效
Feb 03 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
ajax缓存问题解决途径
2006/12/06 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Python request使用方法及问题总结
2020/04/26 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
京东国际站:JOYBUY
2017/11/23 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
求职自荐信范文格式
2013/11/29 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
医德医风自我评价
2014/09/19 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
原告离婚代理词
2015/05/23 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python