当我运行下面的代码时,Safari 的调试控制台告诉我:
TypeError: Result of expression 'document.getElementById("txtHint")' [null] is not an object.
它似乎在这一行抛出错误:
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
代码
function showItem(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
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 && xmlhttp.responseText!='')
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getitem.php?q="+str,true);
xmlhttp.send();
}
我不确定为什么会抛出这个错误。绝对存在 ID 为“txtHint”的 DIV,但 safari 似乎无法正确运行此代码。我想我的问题是,这段代码有什么问题。
最佳答案
这不是一个重复的问题吗?无论如何,尝试在结束主体标记之前抛出脚本或在 dom 准备好/窗口加载之后调用该函数。
关于JavaScript 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4171199/