写 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 作者 塞北的雪
