« deleteTFoot方法组件的使用 悠悠博客系列文章之十 上传组件 »

又一个javascript与cookie的例子

写 cookie

var expiresTime=new Date();
expiresTime.setTime(expiresTime.getTime() + 3000);//保存3秒钟
document.cookie="cookie_northsnow=" + escape("我是 塞北的雪") + ";expires=" + expiresTime.toGMTString();


读 cookie

var strCookie=unescape(document.cookie);
var strTT="cookie_northsnow=";
if(strCookie.indexOf(strTT)>=0)
{
var strT1=strCookie.substring(strCookie.indexOf(strTT) + strTT.length)
var strT2=strT1.substring(0,strT1.indexOf(";"))
alert(strT2);
}


但是对于由服务器端写入的cookie 数组 怎么办呢?

比如:response.Cookies("cookie_northsnow")("name")= "I am NorthSnow!"

读取这个cookie 的代码如下:


var strCookie=unescape(document.cookie);
var strTT="cookie_northsnow=name=";
if(strCookie.indexOf(strTT)>=0)
{
var strT1=strCookie.substring(strCookie.indexOf(strTT) + strTT.length)
var strT2=strT1.substring(0,strT1.indexOf(";"))
alert(strT2.replace(/+/gi," "));
}
但是对于有多个成员的数组,则需要对字符串进行仔细的分割。例如 cookie 数组是这样产生的:

response.Cookies("cookie_northsnow")("name")= "塞北的雪"
response.Cookies("cookie_northsnow")("age")= "而立之年"
response.Cookies("cookie_northsnow")("sex")= "男子汉大豆腐"

则需要要这样的代码进行获取:


var strCookie=new String();
strCookie=unescape(document.cookie);
strTT="cookie_northsnow="
if(strCookie.indexOf(strTT)>=0)
{

var strT1=new String();
var strS=new String();
var arrStr=new Array()
strT1=strCookie.substring(strCookie.indexOf(strTT) + strTT.length)
arrStr=strT1.split("&");
for(var i=0;i<arrStr.length;i++)
{
strS=arrStr[i];
switch(strS.substring(0,strS.indexOf("=")))
{
case "name": alert("姓名===" + strS.substring(strS.indexOf("=")));break
case "age": alert("年龄===" + strS.substring(strS.indexOf("=")));break
case "sex": alert("性别===" + strS.substring(strS.indexOf("=")));break
}
}
}

from csdn 作者 塞北的雪

原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。