internet explorer 6,7,8上的javascript错误;是否为空或不是对象;

internet explorer 6,7,8上的javascript错误;是否为空或不是对象;,javascript,internet-explorer,Javascript,Internet Explorer,当我启动index.php时,它会调用包含以下代码的javascript文件: 当应用程序立即启动时,会出现以下错误: 这只能在internet Explorer上发生,index.php上没有“txtName”,因为。每个页面都会调用js,有什么方法可以改进这个功能吗?塔斯我不需要手动把js在每个页面 有人知道我该怎么解决这个问题吗?非常感谢…更新: 更新后的问题-您可以先测试元素 function focus(){ var txtNameObj = document.getEleme

当我启动index.php时,它会调用包含以下代码的javascript文件:

当应用程序立即启动时,会出现以下错误:

这只能在internet Explorer上发生,index.php上没有“txtName”,因为。每个页面都会调用js,有什么方法可以改进这个功能吗?塔斯我不需要手动把js在每个页面


有人知道我该怎么解决这个问题吗?非常感谢…

更新:

更新后的问题-您可以先测试元素

function focus(){
  var txtNameObj = document.getElementById('txtName');
  if(txtNameObj){
    txtNameObj.focus();
  }
}
这样可以避免未定义的错误

原创

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

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

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

如果该元素确实存在,请确保仅在确保加载该元素后调用focus函数。e、 g.您可以在主体关闭之前将其作为脚本标记放置

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

焦点();

更新:

更新后的问题-您可以先测试元素

function focus(){
  var txtNameObj = document.getElementById('txtName');
  if(txtNameObj){
    txtNameObj.focus();
  }
}
这样可以避免未定义的错误

原创

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

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

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

如果该元素确实存在,请确保仅在确保加载该元素后调用focus函数。e、 g.您可以在主体关闭之前将其作为脚本标记放置

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

焦点();

为什么不为此方法设置一个条件: 在这种情况下:

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

为什么不为此方法设置一个条件: 在这种情况下:

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

这意味着IE找不到您的元素(id='txtName')。更多的代码(带有HTML标记)将帮助我们理解为什么我在原始文本中添加了问题的答案。这意味着IE找不到您的元素(id='txtName')。更多的代码(带有HTML标记)将帮助我们理解为什么我在原始文本中添加了问题的答案,因为脚本标记是同步执行的,或者是“阻塞”的,您也可以将脚本放在源中所需的元素之后。因为脚本标记是同步执行的,或者是“阻塞”的,您还可以将脚本放在源代码中所需的元素之后。