我找了一天也没找出错在哪里!!!读取Cookie全部内容时,我只设了两个啊,怎会多出另外一部分不是我想定义的值呢?能读出Cookie的用户名,却无法读取密码,我试了好多次,在读取密码时,我判断两变量cookiesValue[i][0]==cookieName明明为真,软件却判断为假,就不知点样错了,请指教!!!多谢!!!
<html><head><title></title></head>
<script language="javascript" type="text/javascript">
<!--

//设置Cookie
function setCookie()
{
    var userName=myForm.myName.value;
    var userPassword=myForm.myPassword.value;
    document.cookie="cookieUserName="+userName;
    document.cookie="cookieUserPassword="+userPassword;
}
function getCookie(cookieName)
{
    var cookieMesaage=document.cookie;
    var cookieValue="";
    
    if(cookieName=="myName")
    {
        cookieValue=returnCookieValue(cookieMesaage,"cookieUserName")
        alert("姓名为:"+cookieValue);
    }
    else if (cookieName=="myPassword")
    {
        cookieValue=returnCookieValue(cookieMesaage,"cookieUserPassword")
        alert("密码为:"+cookieValue);
    }
}//该函数用于返回Cookie的值
//cookieValue为整个cookie文件的内容
//cookieName为要获得的cookie的名
function returnCookieValue(cookieValue,cookieName)
{
    //alert(cookieValue);
    var returnCookieValue="Null";
    var cookies=cookieValue.split(";");    var cookiesValue=new Array();
    for(var i=0;i<cookies.length;i++)
    {
        var tempArr=cookies[i].split("=");        cookiesValue[i]=tempArr;
    }    for (var i=0;i<cookiesValue.length;i++)
    {
        
        if(cookiesValue[i][0]==cookieName)
        {
            returnCookieValue=cookiesValue[i][1];
            
            break;
        }
           }
    return returnCookieValue;
}
    
    
    
// -->
</script>
<body>
<form method="get" name="myForm" id="myForm">
    姓名:<input name="myName" id="myName" type="text" ><br>
    密码:<input name="myPassword" id="myPassword" type="password"><br>
    <input type="button" value="设置cookie" onclick="setCookie()">
    <input type="button" value="读取cookie中的姓名" onclick="getCookie('myName')">
    <input type="button" value="读取cookie中的密码" onclick="getCookie('myPassword')">
</form>
</body></html>

解决方案 »

  1.   

    你在returnCookieValue()里alert(cookieValue)看看,cookieUserPassword是有个空格的,而你传进去的cookieName是没有空格的,所以if(cookiesValue[i][0]==cookieName)不成立了。
    在if比较前,都去一下空格就行了。
      

  2.   

    嗯,2楼说得对,我之前也这样检查过,不过没留意那个空格。多谢你!
    以下是我去掉空格的方法,以我的能力,我只能想出这么差的方法啊!你有更好的方法吗?多谢!!for (var i=0;i<cookiesValue.length;i++)
        {
            [color=#FF0000]if(cookiesValue[i][0]==" "+cookieName)
            {
                cookiesValue[i][0]=cookieName;
            }
            if(cookiesValue[i][0]==cookieName)
            {
                returnCookieValue=cookiesValue[i][1];
                
                break;
            }
               }[/color]
      

  3.   

    var cookies = cookieValue.split("; ");就解决了