cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 都已废弃,最新取代的规范是 RFC6265。
cookie 的作用
服务器可以利用 Cookies 包含信息的任意性来筛选并经常性维护这些信息,以判断在 HTTP 传输中的状态。Cookies 最典型的应用是判定注册用户是否已 经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是 Cookies 的功用。另一个重要应用场合是 "购物 车" 之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookies,以便在最后付款时提取信息。
js 设置 cookie
- document.cookie="popped=yes"
js 获取 cookie
- function get_cookie(Name) {
- var search = Name + "="//查询检索的值
- var returnvalue = "";//返回值
- if (document.cookie.length > 0) {
- sd = document.cookie.indexOf(search);
- if (sd!= -1) {
- sd += search.length;
- end = document.cookie.indexOf(";", sd);
- if (end == -1)
- end = document.cookie.length;
- //unescape() 函数可对通过 escape() 编码的字符串进行解码。
- returnvalue=unescape(document.cookie.substring(sd, end))
- }
- }
- return returnvalue;
- }
- //使用方式:
- get_cookie("popped");
给 cookie 设置终止日期
例如:如果要将 cookie 设置为 10 天后过期,可以这样实现:
- //获取当前时间
- var date=new Date();
- var expiresDays=10;
- //将date设置为10天以后的时间
- date.setTime(date.getTime()+expiresDays*24*3600*1000);
- //将userId和userName两个cookie设置为10天后过期
- document.cookie="userId=828; userName=hulk; expires="+date.toGMTString();
其中 GMT_String 是以 GMT 格式表示的时间字符串,这条语句就是将 userId 这个 cookie 设置为 GMT_String 表示的过期时间,超过这个时间,cookie 将消失,不可访问。
删除 cookie
为了删除一个 cookie,可以将其过期时间设定为一个过去的时间,例如:
- //获取当前时间
- var date=new Date();
- //将date设置为过去的时间
- date.setTime(date.getTime()-10000);
- //将userId这个cookie删除
- document.cookie="userId=828; expires="+date.toGMTString();
下面封装上面的方法
- var cookie = {
- set:function(key,val,time){//设置cookie方法
- var date=new Date(); //获取当前时间
- var expiresDays=time; //将date设置为n天以后的时间
- date.setTime(date.getTime()+expiresDays*24*3600*1000); //格式化为cookie识别的时间
- document.cookie=key + "=" + val +";expires="+date.toGMTString(); //设置cookie
- },
- get:function(key){//获取cookie方法
- /*获取cookie参数*/
- var getCookie = document.cookie.replace(/[ ]/g,""); //获取cookie,并且将获得的cookie格式化,去掉空格字符
- var arrCookie = getCookie.split(";") //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
- var tips; //声明变量tips
- for(var i=0;i
- delete:function(key){ //删除cookie方法
- var date = new Date(); //获取当前时间
- date.setTime(date.getTime()-10000); //将date设置为过去的时间
- document.cookie = key + "=v; expires =" +date.toGMTString();//设置cookie
- }
- return tips;
- }
- }
使用方式:
cookie.set("uesr","sss",24);// 设置为 24 天过期
alert(cookie.get("uesr"));// 获取 cookie
来源: http://www.bubuko.com/infodetail-1990203.html