Javascript无法使用标头

时间:2014-03-03 12:41:50

标签: javascript

我遇到问题,简单的Javascript代码无法使用标题中的链接文件,但在浏览器控制台中工作。代码是:

document.getElementById("displayname").onfocus = function(){alert("Hello");}

在chrome检查器中,我可以看到脚本文件已正确链接,我可以在源选项卡中访问它。我也在加载的脚本文件中收到此错误。

未捕获的TypeError:无法设置null的属性'onfocus'

这里有什么问题?

4 个答案:

答案 0 :(得分:1)

问题在于您执行此代码时displayname对象不存在。当你通过控制台执行它时,对象已经存在并且运行完美。 你有两个选择

  1. 将脚本放在displayname对象之后
  2. 将脚本放在body onload事件

答案 1 :(得分:1)

这是因为你的代码试图访问id为“displayname”的东西,而DOM还没有完成构建,并且还没有处理那个你的(可能是输入的)对象。 它从上到下处理/建立dom。

将代码放在</BODY>标记正上方的页脚中,因为DOM已经完成构建,所以它可以很好地工作。

答案 2 :(得分:1)

尝试将代码包装在window.onload

window.onload = function() {
   document.getElementById("displayname").onfocus = function(){alert("Hello");}
}

Demo!

答案 3 :(得分:0)

这是做同样的简单方法

试试这个

Enter your name: <input id="displayname" type="text" onfocus="myFunction(this)">

参考http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onfocus