javascript 操作cookie

本文提供了一组JavaScript函数用于读取、设置和删除cookie,包括兼容性问题和字符限制说明。

一个非常实用的javascript读写cookie函数

一个非常实用的javascript读写cookie函数

functiongetcookieval(offset)

//获得cookie解码后的值

{

varendstr=documents.cookie.indexof(";",offset);

if(endstr==-1)

endstr=documents.cookie.length;

returnunescape(documents.cookie.substring(offset,endstr));

}

functionsetcookie(name,value)

//设定cookie值

{

varexpdate=newdate();

varargv=setcookie.arguments;

varargc=setcookie.arguments.length;

varexpires=(argc>2)?argv[2]:null;

varpath=(argc>3)?argv[3]:null;

vardomain=(argc>4)?argv[4]:null;

varsecure=(argc>5)?argv[5]:false;

if(expires!=null)expdate.settime(expdate.gettime()+(expires*1000));

documents.cookie=name+"="+escape(value)+((expires==null)?"":(";expires="+expdate.togmtstring()))

+((path==null)?"":(";path="+path))+((domain==null)?"":(";domain="+domain))

+((secure==true)?";secure":"");

}

functiondelcookie(name)

//删除cookie

{

varexp=newdate();

exp.settime(exp.gettime()-1);

varcval=getcookie(name);

documents.cookie=name+"="+cval+";expires="+exp.togmtstring();

}

functiongetcookie(name)

//获得cookie的原始值

{

vararg=name+"=";

varalen=arg.length;

varclen=documents.cookie.length;

vari=0;

while(i

0){

offset=documents.cookie.indexof(search)

if(offset!=-1){

offset+=search.length

end=documents.cookie.indexof(";",offset);

if(end==-1)

end=documents.cookie.length;

returnvalue=unescape(documents.cookie.substring(offset,end))

}

}

returnreturnvalue;

}

functionhelpor_net(){

if(get_cookie('popped')==''){

openpopup()

documents.cookie="popped=yes"

}

}

helpor_net()

//-->

如果点了确定,只要不清cookie,以后访问都不会再提示,如果不点确定则每次都会提示。放在js文件里,全站包含

1. cookie的兼容性问题

cookie的格式有2个不同的版本,第一个版本,我们称为cookie version 0,是最初由netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,cookie version 1,则是根据rfc 2109文档制定的。为了确保兼容性,java规定,前面所提到的涉及cookie的操作都是针对旧版本的cookie进行的。而新版本的cookie目前还不被javax.servlet.http.cookie包所支持。

2. cookie的内容

同样的cookie的内容的字符限制针对不同的cookie版本也有不同。在cookie version 0中,某些特殊的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号都不能作为cookie的内容。这也就是为什么我们在例子中设定cookie的内容为"test_content"的原因。

虽然在cookie version 1规定中放宽了限制,可以使用这些字符,但是考虑到新版本的cookie规范目前仍然没有为所有的浏览器所支持,因而为保险起见,我们应该在cookie的内容中尽量避免使用这些字符


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值