JavaScript Cookies

<html>
<head>
<script type="text/javascript">
function getCookie(c_name)
{
if (document.cookie.length>0)

c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)

c_start=c_start + c_name.length+1 
c_end=document.cookie.indexOf(";",c_start)  //表示从c_start这个地方开始查找,如果没有c_start就是从头查找
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))

}
return ""
}


function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : "; expires="+exdate.toGMTString())
}


function checkCookie()
{
username=getCookie('username')
if (username!=null && username!="")
  {alert('Welcome again '+username+'!')}
else 
  {
  username=prompt('Please enter your name:',"")
  if (username!=null && username!="")
    {
    setCookie('username',username,365)
    }
  }
}
</script>
</head>
<body onLoad="checkCookie()">
</body>

</html>

解释:
1. cookie保存在系统中的时候是以“cookie名1=cookie值;cookie名2=cookie值”这样的方式来保存的。
2. document.cookie是返回包含所有cookie的字符串。
3. document.cookie.indexOf(c_name + "=")是取得这个cookie名在整个cookie中的位置。【加"="号:取cookie名加上等于号的位置,比方整个cookie是"user=tony;passwd=user123",这时候查找名为user的cookie的值的时候,是查找"user="的位置,如果不要等于号,就会找到其他位置的"user",比如后面密码里面也有user字符但并不是cookie名所在的位置。因为cookie中cookie名都是唯一的,所以加上等于号就不会出错了。】
4. c_start=c_start + c_name.length+1是用先前取得的位置加上cookie名的长度再加1,就是把位置确定在这个cookie名的"="符号的后面。
5. c_end=document.cookie.indexOf(";",c_start)是从上一步的位置开始查找,直到";"的位置。
6. document.cookie.substring(c_start,c_end))就是取该cookie名的等号后面到分号前面的字符串,即对应的cookie值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值