Window.onload范围问题

时间:2016-12-22 18:50:05

标签: javascript

所以我一直在尝试创建一个函数,可以将this.courses中的所有数据推送到具有FetchAll属性的表体中,但由于某种原因,我继续在我的内容中出现此错误FetchAll中的window.onload功能:

  

无法设置undefined

的innerHTML

但是,当我没有使用window.onload并将app.FetchAll()放在应用范围之外时,在正文底部运行脚本,我可以完全访问{{1} }。

这里发生了什么?

this.el

1 个答案:

答案 0 :(得分:3)

这不是范围问题,只是在浏览器解释HTML文档时发生的事情。创建app对象的初始化代码在浏览器构建DOM之前运行。因此,.getElementById()来电正在返回null

当您将代码移动到<body>的末尾时,它会起作用,因为在这种情况下代码运行时(主要)构造了DOM。

如果您的代码位于底部,则可以在“加载”处理程序中放置对FetchAll()的调用。如果将 all 代码(包括app对象的构造)放入“load”处理程序,那也可以。