发一下js文件源码,请教其中的一行代码,谢谢。
-----------------------------------------------------------------
这是一本不错的javascript教科书的源码。
我基本上看明白了,就是其中一句话不理解,发上来问问。
先贴代码:
//功能:传入天数,小时,分钟数,返回一个gmt格式的过期日期
function getExpDate(days,hours,minutes) {
var expDate=new Date();
if (typeof days =="number" && typeof hours =="number" && typeof minutes =="number")
{
expDate.setDate(expDate.getDate()+parseInt(days));
expDate.setHours(expDate.getHours()+parseInt(hours));
expDate.setMinutes(expDate.getMinutes()+parseInt(minutes));
return expDate.toGMTString();
}
}//返回第n个字符开始的cookie名值对
function getCookieVal(offset) {
//下面查找cookie中,分号第n次出现的首位置(n为offset)
var endstr=document.cookie.indexOf(";",offset);
if (endstr==-1)
{
//如果找不到,即从 offset 开始已经找不到分号了,则 endstr 就是整个cookie串的长度
endstr=document.cookie.length;
}
//substring(from,to)返回从from开始,到to-1结束的子串。
return unescape(document.cookie.substring(offset,endstr));
}//功能:通过cookie的名称,得到它的值
function getCookie(name) {
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
//alert("cookie为 "+document.cookie);
//alert("cookie长度为 "+document.cookie.length);
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i,j)==arg)
{
return getCookieVal(j);
} //以下这一句我不明白,为什么要查找空白字符串呢?道理何在?
i=document.cookie.indexOf(" ",i)+1;
alert("当前的i值为:"+i);
if (i==0)
{
break;
}
}
return "";
}//创建cookie
function setCookie(name,value,expires,path,domain,secure) {
document.cookie=name+"="+escape(value)+
((expires)?";expires="+expires:"")+
((path)?";path="+path :"")+
((domain)?";domain="+domain:"")+
((secure)?";secure":"");
}//删除cookie
function deleteCookie(name,path,domain) {
if (getCookie(name))
{
document.cookie=name+"="+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+
";expires=thu,01-jan-1970 00:00:01 GMT";
}
}
-----------------------------------------------------------------
这是一本不错的javascript教科书的源码。
我基本上看明白了,就是其中一句话不理解,发上来问问。
先贴代码:
//功能:传入天数,小时,分钟数,返回一个gmt格式的过期日期
function getExpDate(days,hours,minutes) {
var expDate=new Date();
if (typeof days =="number" && typeof hours =="number" && typeof minutes =="number")
{
expDate.setDate(expDate.getDate()+parseInt(days));
expDate.setHours(expDate.getHours()+parseInt(hours));
expDate.setMinutes(expDate.getMinutes()+parseInt(minutes));
return expDate.toGMTString();
}
}//返回第n个字符开始的cookie名值对
function getCookieVal(offset) {
//下面查找cookie中,分号第n次出现的首位置(n为offset)
var endstr=document.cookie.indexOf(";",offset);
if (endstr==-1)
{
//如果找不到,即从 offset 开始已经找不到分号了,则 endstr 就是整个cookie串的长度
endstr=document.cookie.length;
}
//substring(from,to)返回从from开始,到to-1结束的子串。
return unescape(document.cookie.substring(offset,endstr));
}//功能:通过cookie的名称,得到它的值
function getCookie(name) {
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
//alert("cookie为 "+document.cookie);
//alert("cookie长度为 "+document.cookie.length);
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i,j)==arg)
{
return getCookieVal(j);
} //以下这一句我不明白,为什么要查找空白字符串呢?道理何在?
i=document.cookie.indexOf(" ",i)+1;
alert("当前的i值为:"+i);
if (i==0)
{
break;
}
}
return "";
}//创建cookie
function setCookie(name,value,expires,path,domain,secure) {
document.cookie=name+"="+escape(value)+
((expires)?";expires="+expires:"")+
((path)?";path="+path :"")+
((domain)?";domain="+domain:"")+
((secure)?";secure":"");
}//删除cookie
function deleteCookie(name,path,domain) {
if (getCookie(name))
{
document.cookie=name+"="+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+
";expires=thu,01-jan-1970 00:00:01 GMT";
}
}
//功能:通过cookie的名称,得到它的值
function getCookie(name) {
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
//alert("cookie为 "+document.cookie);
//alert("cookie长度为 "+document.cookie.length);
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i,j)==arg)
{
return getCookieVal(j);
} //以下这一句我不明白,为什么要查找空白字符串呢?道理何在?
i=document.cookie.indexOf(" ",i)+1;
alert("当前的i值为:"+i);
if (i==0)
{
break;
}
}
return "";
}
<head>
<title></title>
<style>
</style>
</head>
<script>
document.cookie = "a=1;";
document.cookie = "b=2;";
document.write(document.cookie)
</script>
<body>
</body>
</html>
试完上面的你就会知道.多次存储后的COOKIE是以空格分开不同的name存储的内容的.
key1=value1; key2=value2; key3=value3
用空格来区分每一项