当我开始我的index.php它调用具有下面这段代码我的JavaScript文件:在Internet Explorer 6,7,8 JavaScript错误,“为空或不是对象”
时应用程序启动时立即出现此错误:
,这只能在互联网上探险发生,对的index.php没有“txtName的”,因为。每个页面都要调用js,有什么办法可以改进这个功能? tath我不需要手动把每个页面的js?
任何人都知道我该如何解决这个问题?非常感谢您......
当我开始我的index.php它调用具有下面这段代码我的JavaScript文件:在Internet Explorer 6,7,8 JavaScript错误,“为空或不是对象”
时应用程序启动时立即出现此错误:
,这只能在互联网上探险发生,对的index.php没有“txtName的”,因为。每个页面都要调用js,有什么办法可以改进这个功能? tath我不需要手动把每个页面的js?
任何人都知道我该如何解决这个问题?非常感谢您......
你为什么不把有条件的这种方法: 在这种情况下:
var iId = document.getElementById('txtName');
if(iId != null)
{
// Processing
}
更新:
更新后的问题 - 你可以测试元件首先
function focus(){
var txtNameObj = document.getElementById('txtName');
if(txtNameObj){
txtNameObj.focus();
}
}
这应该避免与它的错误没有被定义。
原始
我只能猜测有两个问题之一:
a)您的DOM还尚未加载(因此即使该ID将存在,但它尚未)
b。)您没有具有该ID的元素。
如果元素确实存在,一定要在确定元素已加载后才调用focus函数。例如你可以将它作为脚本标记放在身体关闭之前。
<script>
focus();
</script>
</body>
</html>
由于脚本标记是同步执行的,或者是“阻塞”,所以您还可以在脚本需要在来源中。 –
这意味着IE不能找到你的元素(id为“txtName的”)。更多的代码(带有HTML标记)将帮助我们理解为什么 –
我在原文中添加了问题的答案 –