关于COOKIE

Cookie中一些可能不知道或被忘记的细节:

 

1. Cookie不能包含空格,分号,逗号等特殊字符。如有有的话,需要在写入时用escape()编码,读取时用unescape()解码。

 

这是因为,cookie的存储方法是string,而不是数组,不同键值之间是用; (逗号+空格)分开。

 

document.cookie = "name1=value1";
document.cookie = "name2=value2";
document.cookie = "name3=value3";
document.cookie = "name2=value4";
document.write(document.cookie);

 为了试验一下cookie的存储,我运行了上面一段代码,有意思的是,在chrome和IE下,输出的结果有细微的区别:

Chrome:name1=value1; name3=value3; name2=value4

IE9:name1=value1; name2=value4; name3=value3

 

 

2. 一个cookie键值后可以带三个参数:

 

expires:过期时间,默认为关闭浏览器时。值为GMT格林威治时间。e.g. var d = new Date(); d.toUTSString()。Date的相关函数:http://www.w3school.com.cn/js/jsref_obj_date.asp

 

path:可以共享cookie的路径。默认为同目录以及其子目录下所有的脚本。

 

domain:可共享cookie的域名,比如让www.xx.com和game.xx.com共享cookie,domain=xx.com

 

document.cookie = "name4=value4;expires="+d.toUTCString()+";path=/;domain=xx.com";

 

3. cookie的读取

 

function getCookie(name){
    if (document.cookie.length>0){
        var start=document.cookie.indexOf(name + "=");
        if (start!=-1){ 
        start=start + name.length+1;
            var end=document.cookie.indexOf(";",start);
            if (end==-1){ 
                end=document.cookie.length;  
                return unescape(document.cookie.substring(start,end));
            }
    } 
  }
  return "";
}  

 

 

4. cookie的删除

 

删除cookie的方法就是设定cookie的过期时间小于当前时间,然后就可以了

var d = new Date();
d.setTime(d.getTime() - 10000);
document.cookie = "name=value;expires="+d.toUTSString;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值