您的位置:首页 > Web前端 > JavaScript

javascript cookie 操作

2013-04-09 17:37 357 查看
创建cookie时,可以设置6个部分:name(名称)、value(值)、expires(过期时间)、path(路径)、domain(域)、secure(安全),其中后四个是可选的。

1、名和值

cookie的第一部分是名和值,名用来引用cookie,值是cookie的信息部分,这两部分是必选的。

cookie的值是一个基本字符串,但如果保存的是数值数据,该字符串也可以保存数字字符。

分号在cookie中用作不同部分的分割,如果保存的字符串中有分号,应该对字符串进行特殊编码。

设置cookie的名值:

document.cookie=’userName=wangjunjie’。

2、过期时间

如果cookie不设置expires,用户关闭浏览器后cookie过期,下次打开浏览器时该cookie不复存在。

过期时间的格式是非常重要的,对于IE浏览器尤为重要,它应该与toGMTString()给出的格式相同。

设置cookie的过期时间:

var expireDate=new Date();

expireDate.setMonth(expireDate.getMonth()+6);

document.cookie=’userName=wangjunjie;expires=’+expireDate.toGMTString();

3、路径

站点里有两个目录~/A和~/B,~/B中设置的cookie可以在它的目录及其子目录下访问,不能在~/A中访问,如果想在站点里的任何地方访问~/B中设置的cookie,则需要把path设置为’/'。

设置cookie的路径:

document.cookie=’userName=wangjunjie;path=/’;

4、域

默认情况下cookie仅用于设置它的域下面的页面,假设现在有两个站点a.blog.com和b.blog.com,在a.blog.com下设置的 cookie不能在b.blog.com下访问,反之亦然,如果想在两个站点下都访问这个cookie需要该domain值。

设置cookie的域:

document.cookie=’userName=wangjunjie;domain=blog.com’;

5、安全

cookie的最后一部分是一个Boolen值,默认为false,总是发送cookie,补考虑安全性,如果设置为true,则cookie仅发送给尝试使用安全通道检索它的Web服务器。

cookie的增、读、删操作

function setCookie(n,v){

var Days = 30; //此 cookie 将被保存 30 天

var exp = new Date(); //new Date(“December 31, 9998″);

exp.setTime(exp.getTime() + Days*24*60*60*1000);

document.cookie = n + “=”+ decodeURI (v) + “;expires=” + exp.toGMTString()+”;path=/”;

}

function getCookie(n){

var c = document.cookie.match(new RegExp(“(^| )”+n+”=([^;]*)(;|$)”));

if(c != null){

return decodeURIComponent(c[2]);

}else{

return null;

}

}

function clearCookie(n){

var exp = new Date();

exp.setTime(exp.getTime() – 1);

var c=tm.method.getCookie(n);

if(c!=null){

document.cookie= n + “=”+c+”;expires=”+exp.toGMTString()+”;path=/”;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: