标题中的Javascript函数显示为未定义

时间:2013-02-19 15:22:06

标签: javascript html function centering

    <script type="text/javascript">
function centerItem(id,size)
{
    var pad = (window.innerWidth - size)/2;
    document.getElementById(id).style.marginLeft = pad+"px";
    document.getElementById(id).style.marginRight = pad+"px";
}

function login()
{
    document.getElementById('box').innerHTML="<img src="img/pleasewait.gif" />";
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
    {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById('box').innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST","http://[lan ip]/Athena/lib/ajax/login.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("email="+email+"&pass="+pass);
}
</script>

这是在我的<head>部分,我正在使用它来调用它。

<script type="text/javascript">centerItem('login',210);</script>

但是,我收到错误消息“未捕获的ReferenceError:未定义centerItem (匿名函数)“

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

document.getElementById('box').innerHTML="<img src="img/pleasewait.gif" />";
真的应该是:
document.getElementById('box').innerHTML="<img src=\"img/pleasewait.gif\" />"

在创建图片标记时,您需要转义双引号。

你应该缓存你选择的元素。结果将是:

function centerItem(id, size) {
    var pad = (window.innerWidth - size)/2,
        elem = document.getElementById(id);
    elem.style.marginLeft = pad+"px";
    elem.style.marginRight = pad+"px";
}

function login() {
    var xmlhttp;
    var box = document.getElementById('box');
    box.innerHTML="<img src=\"img/pleasewait.gif\" />";

    if (window.XMLHttpRequest){
      // code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    } else {
      // code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            box.innerHTML=xmlhttp.responseText;
        }
    };
    xmlhttp.open("POST","http://[lan ip]/Athena/lib/ajax/login.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("email="+email+"&pass="+pass);
}