找不到节点错误 - 尽管可以在控制台中找到节点

时间:2012-10-17 09:47:40

标签: javascript html frame

我正在尝试在文档的最顶部插入一段HTML,看起来有点像这样:

<html>
<frameset onunload="unload()" onload="loadme()" id="topframeset" frameborder="0" framespacing="0" rows="45,19,10,0,*,22">
(...)
</frameset>                                                                                
</html>
好的 - 看起来很容易。在Firebug中,我可以做到:

>>> document.getElementById("topframeset")

<frameset id="topframeset" onunload="unload()" onload="loadme()" frameborder="0" framespacing="0" rows="45,19,10,0,*,22">

所以它发现没问题。

然后:

document.insertBefore(document.createTextNode("<h1>hello</h1>"), document.getElementById("topframeset"))

Error: Node was not found
[Break On This Error]   

...ertBefore(document.createTextNode("<h1>hello</h1>"), document.getElementById("to...

发生了什么事?

2 个答案:

答案 0 :(得分:1)

您需要在某些内容中插入<h1> - textNode,例如body

document.body.insertBefore(document.createTextNode("<h1>hello</h1>"),
document.getElementById("topframeset"))

并且有效

答案 1 :(得分:1)

davidkonrad是对的,您需要在某些内容中插入文本节点。

var frameSet = document.getElementById('topframeset');
var textNode = document.createTextNode('<h1>hello</h1>');
frameSet.parentNode.insertBefore(textNode, frameSet);