Javascript getElementById 空错误
2012-08-19
654
我最近发布了有关 Firefox 中的 javascript 问题的帖子,并指出问题很可能是 document.write() 以某种方式覆盖了脚本。 有人建议我使用 ID 来解决覆盖脚本的问题并避免信息堆叠 。
但是,在尝试将 ID 实现到我的 javascript 和 html 代码中时,我发现 firebug 报告:
"TypeError: document.getElementById("author_container") is null"
尽管事实是,再次,ID 已经在以下位置定义:
<p id="author_container"></p>
并且显然没有拼写错误, 并将脚本重新排列 到头部部分或对其进行更改以使 p 出现在脚本之前 完全没有区别 。 (请注意,尽管脚本先出现,但另一个示例仍运行良好)。
如果我使用预先存在的 ID 和 getElementById 示例并在 Firefox 中运行它,它会运行良好:
但如果我尝试运行我的代码,这似乎并没有太大的不同,我会遇到问题: http://pastebin.com/XfGUpZAS
我在这里遗漏了什么吗?我如何修改代码以使其在 Firefox 中工作?Firefox 会允许我正确运行我的代码吗?(下周找出答案?)
1个回答
将脚本放在页面底部,紧靠在结束
</body>
标记之前。换句话说,将脚本标记设为
document.body
的最后一个标记。这样,DOM 树在脚本开始之前就已完全加载。
除了许多问题之外,真正的问题是
GenerateCoord
函数中的
document.open
语句。这会
清除整个文档
,之后 - 确实 - 任何 Id 都无法获取任何元素。下面是没有它的
jsfiddle
。
KooiInc
2012-08-19