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 27 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
jquery实现简单实用的打分程序实例
Jul 23 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
最全的JavaScript开发工具列表 总有一款适合你
Jun 29 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
JQuery animate动画应用示例
May 14 jQuery
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
vue打包时去掉所有的console.log
Apr 10 Vue.js
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下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
json数据格式常见操作示例
2019/06/13 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
学习python (2)
2006/10/31 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python字符串常用方法
2018/06/14 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
Hotels.com南非:酒店预订
2017/11/02 全球购物
民事授权委托书范文
2014/08/02 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技