2011-08-20 96 views
0

当我开始我的index.php它调用具有下面这段代码我的JavaScript文件:在Internet Explorer 6,7,8 JavaScript错误,“为空或不是对象”

enter image description here

时应用程序启动时立即出现此错误:

enter image description here

,这只能在互联网上探险发生,对的index.php没有“txtName的”,因为。每个页面都要调用js,有什么办法可以改进这个功能? tath我不需要手动把每个页面的js?

任何人都知道我该如何解决这个问题?非常感谢您......

+1

这意味着IE不能找到你的元素(id为“txtName的”)。更多的代码(带有HTML标记)将帮助我们理解为什么 –

+0

我在原文中添加了问题的答案 –

回答

2

你为什么不把有条件的这种方法: 在这种情况下:

var iId = document.getElementById('txtName'); 
if(iId != null) 
{ 
    // Processing 
} 
4

更新:

更新后的问题 - 你可以测试元件首先

function focus(){ 
    var txtNameObj = document.getElementById('txtName'); 
    if(txtNameObj){ 
    txtNameObj.focus(); 
    } 
} 

这应该避免与它的错误没有被定义。

原始

我只能猜测有两个问题之一:

a)您的DOM还尚未加载(因此即使该ID将存在,但它尚未)

b。)您没有具有该ID的元素。

如果元素确实存在,一定要在确定元素已加载后才调用focus函数。例如你可以将它作为脚本标记放在身体关闭之前。

<script> 
     focus(); 
    </script> 
    </body> 
</html> 
+2

由于脚本标记是同步执行的,或者是“阻塞”,所以您还可以在脚本需要在来源中。 –

相关问题