javascript学习笔记(七)利用javascript来创建和存储cookie


Posted in Javascript onApril 08, 2011

首先看一下基础知识:
1、什么是cookie
cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值
2、有关cookie的例子:
•名字 cookie 当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "Welcome John Doe!" 的欢迎词。而名字则是从 cookie 中取回的。
•密码 cookie 当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。
•日期 cookie 当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是从 cookie 中取回的。
下面来创建一个cookie的实例,如何来创建cookie及取出cookie
javascript部分代码:

//创建cookie 
function setCookie(name, value, expireday) { 
var exp = new Date(); 
exp.setTime(exp.getTime() + expireday*24*60*60*1000); //设置cookie的期限 
document.cookie = name+"="+escape(value)+"; expires"+"="+exp.toGMTString();//创建cookie 
} 
//提取cookie中的值 
function getCookie(name) { 
var cookieStr = document.cookie; 
if(cookieStr.length > 0) { 
var cookieArr = cookieStr.split(";"); //将cookie信息转换成数组 
for (var i=0; i<cookieArr.length; i++) { 
var cookieVal = cookieArr[i].split("="); //将每一组cookie(cookie名和值)也转换成数组 
if(cookieVal[0] == name) { 
return unescape(cookieVal[1]); //返回需要提取的cookie值 
} 
} 
} 
} 
//测试cookie 
function checkCookie() { 
var cookieUser = document.getElementById("cookieUser"); 
var userName = getCookie("userName"); 
if(userName) { 
cookieUser.innerHTML = "您好"+userName+",欢迎再次回来!"; 
} else { 
var value = prompt("请输入用户名", ""); 
if(value) { 
setCookie('userName', value, 1); 
} else { 
alert("请输入用户名!"); 
} 
} 
}

主要在于如何提取我们需要的cookie信息,在本例的getCookie函数中主要是将cookie信息转化成数组的方式来查找我们需要提取的cookie值。还可以通过正则表达式的方式来匹配,如下:
function getCookie(name) { 
var cookieStr = document.cookie; 
var cookieArr = cookieStr.match(new RegExp(name+"=[a-zA-Z0-9]*;$")); 
var cookieVal = cookieArr.split("="); 
if(cookieVal[0] == name) { 
return unescape(cookieVal[1]); 
} 
}

比如在这个例子中,如果打开浏览器中没有存储名为userName的cookie,则会提示用户输入用户名,再次刷新页面时则会显示输入的cookie值。
最后我们可以测试一下代码:
<body onload="checkCookie()"> 
<p id="cookieUser"></p> 
</body>
Javascript 相关文章推荐
JavaScript语句可以不以;结尾的烦恼
Mar 08 Javascript
JavaScript 继承的实现
Jul 09 Javascript
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
Jquery中使用setInterval和setTimeout的方法
Apr 08 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
JavaScript中如何通过arguments对象实现对象的重载
May 12 Javascript
JS获取单击按钮单元格所在行的信息
Jun 17 Javascript
JavaScript中的this,call,apply使用及区别详解
Jan 29 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
Jun 01 Javascript
想用好React的你必须要知道的一些事情
Jul 24 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
JavaScript图片旋转效果实现方法详解
Jun 28 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 #Javascript
javascript学习笔记(五)正则表达式
Apr 08 #Javascript
javascript学习笔记(三)显示当时时间的代码
Apr 08 #Javascript
javascript 学习笔记(一)DOM基本操作
Apr 08 #Javascript
jQuery 名称冲突的解决方法
Apr 08 #Javascript
js 事件处理函数间的Event物件是否全等
Apr 08 #Javascript
Javascript 八进制转义字符(8进制)
Apr 08 #Javascript
You might like
PHP入门经历和学习过程分享
2014/04/11 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
使用python爬取B站千万级数据
2018/06/08 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python实现简易动态时钟
2018/11/19 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
建筑文秘专业个人求职信范文
2013/12/28 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
公司办公室岗位职责
2014/03/19 职场文书
老公爱的承诺书
2014/03/31 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
浅谈怎么给Python添加类型标注
2021/06/08 Python
python实现会员管理系统
2022/03/18 Python