javascriptCookie.docx
- 文档编号:3804989
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:9
- 大小:61.45KB
javascriptCookie.docx
《javascriptCookie.docx》由会员分享,可在线阅读,更多相关《javascriptCookie.docx(9页珍藏版)》请在冰豆网上搜索。
javascriptCookie
Cookie是存储在客户端中的一些信息。
同一个网站可以创建多个cookie,而多个cookie可以存放在同一个cookie文件中。
使用Document对象的cookie属性可以设置一个cookie,也可以从一个cookie文件中读取所有的cookie内容。
设置cookie方法:
Document.cookie=”name=value”
取得cookie方法:
Varcookies=document.cookie;
下面是设置和取得cookie的方法:
functionsetcookie()
{
varuserName=myform.name.value;
varpassword=myform.password.value;
document.cookie="cookieUserName="+userName;
document.cookie="cookiePassword="+password;
}
functiongetcookie()
{
varcookiemessage=document.cookie;
alert(cookiemessage);
}
Document.cookie是取得全部的cookie,就如上面所示,把全部的cookie都拿来了。
如果要获得部分cookie,可以使用String对象的substring()方法来截取。
要获得某个指定的cookie值,就必须要获得cookie值的开始和结束部分,由于cookie值是不固定的,而cookie的名是固定的,所以可以先获得cookie名开始位置,以cookieUserName为例,就需要获得子字符串”cookieUserName=”在整个字符串的位置。
获得cookie名的开始位置之后,可以通过cookie名的开始位置加上cookie名的长度再加上1(即加上了”=”的位置)的方法来获得cookie的值的开始位置。
获得cookie值的开始位置之后,还必须知道cookie值的结束位置才可以使用string对象的substring()方法来截取cookie值。
functionsetcookie()
{
varuserName=myform.name.value;
varpassword=myform.password.value;
document.cookie="cookieUserName="+userName;
document.cookie="cookiePassword="+password;
}
functiongetcookie(cookieName)
{
varcookiemessage=document.cookie;
varcookieValue="";
if(cookieName=="name")
{
cookieValue=returnCookieValue(cookiemessage,"cookieUserName");
alert("姓名是:
"+cookieValue);
}
if(cookieName=="password")
{
cookieValue=returnCookieValue(cookiemessage,"cookiePassword");
alert("密码是:
"+cookieValue);
}
}
functionreturnCookieValue(cookieValue,cookieName)
{
varreturncookievalue="";
varcookieNameIndex=cookieValue.indexOf(cookieName+"=");
if(cookieNameIndex!
=-1)
{
varcookieValueBeginIndex=cookieNameIndex+cookieName.length+1;
varCookieVaulueEndIndex=cookieValue.indexOf(";",cookieValueBeginIndex);
}
if(cookieNameIndex==-1)
{
cookieValueEndIndex=cookieValue.length;
}
returncookievalue=cookieValue.substring(cookieValueBeginIndex,CookieVaulueEndIndex);//截取
returnreturncookievalue;
}
我们还可以通过数组来读取cookie值
functionsetcookie()
{
varuserName=myform.name.value;
varpassword=myform.password.value;
document.cookie="cookieUserName="+userName;
document.cookie="cookiePassword="+password;
}
functiongetcookie(cookieName)
{
varcookiemessage=document.cookie;
varcookieValue="";
if(cookieName=="name")
{
cookieValue=returnCookieValue(cookiemessage,"cookieUserName");
alert("姓名是:
"+cookieValue);
}
if(cookieName=="password")
{
cookieValue=returnCookieValue(cookiemessage,"cookiePassword");
alert("密码是:
"+cookieValue);
}
}
functionreturnCookieValue(cookieValue,cookieName)
{
varreturncookievalue="";
varcookies=cookieValue.split(";");//cookies变为了数组了
varvalue=newArray();
for(i=0;i { vartempArr=cookies[i].split("=");//分成了两个 value[i]=tempArr;//value变为了二维数组了 } for(vari=0;i { if(value[i][0]==cookieName) { returncookievalue=value[i][1]; break; } } returnreturncookievalue; } 1.cookie的生存周期 document.cookie=”name=value;expires=date” date的格式是: Wdy,DD-Mon-YYHH: MM: SSGMT 1)Wdy: 用英文简写表示的星期 2)DD: 使用量为数字表示的日期 3)Mon: 使用英文简写的月份 4)YY: 使用两位数字表示的年份 5)HH: 使用两位数字表示的小时 6)MM: 表分钟 7)SS: 表秒 8)GMT: 说明该格式为GMT functionsetcookie() { varuserName=myform.name.value; varpassword=myform.password.value; varexpiresdate=newDate(); expiresdate.setDate(expiresdate.getDate()+1); document.cookie="cookieUserName="+userName+";expires="+expiresdate.toGMTString(); document.cookie="cookiePassword="+password+";expires="+expiresdate.toGMTString(); } Cookie只能创建不能删除,如果想删除一个cookie,可以将生存期设置为一个已经过期的时间。 即使cookie已经失效,但是cookie文件不会被立即删除。 2.cookie的路径 document.cookie=”name=value;expires=datepath=path” path就是路径。 默认情况下,只有与创建cookie的网页在同一个虚拟目录或子虚拟目录下的网页才可以范围内该cookie,假设一个cookie是由下面网页所创建: 以上网页的虚拟目录为: /booksupport/jscode/17/ 因此,在该虚拟目录和该虚拟目录的子目录下的所有文件都可以访问该cookie,如下面网页: 要想让父级能够访问,就需要设置cookie的路径。 document.cookie=”name=value;expires=datepath=/” 如上面所示,把Cookie的路径设为”/”,也就是表示只要在同一个域中,所有文件都可以访问该cookie. 3.cookie的域 使用cookie的路径只能解决不同虚拟目录下文件访问cookie的问题,但不能解决不同域下文件相互访问的问题。 要想不同域中的文件互相访问cookie,就需要设置cookie的域。 document.cookie=”name=value;expires=date;path=path;domain=domain” domain为cookie的域,如: domain: 4.cookie的安全性 document.cookie=”name=value;secure” 加了secure后,如果传输协议不是加密协议,就不会传输cookie 5.为cookie编码 在设置cookie值之前,应该先使用escape()函数将cookie值编码,在获得cookie值后,再使用unecape()函数将值还原。 functionsetcookie() { varuserName=escape(myform.name.value); varpassword=escape(myform.password.value); document.cookie="cookieUserName="+userName; document.cookie="cookiePassword="+password; } functiongetcookie() { varcookiemessage=unescape(document.cookie) alert(cookiemessage); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javascriptCookie