发一下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";
}
}

解决方案 »

  1.   

    就是以下这个函数中的一行代码:
    //功能:通过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 "";
    }
      

  2.   

    <html>
    <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存储的内容的.
      

  3.   

    cookie的格式是:
    key1=value1; key2=value2; key3=value3
    用空格来区分每一项