如何在JavaScript中添加新元素?

时间:2009-04-17 01:26:38

标签: javascript dom

我创建了一个JavaScript脚本,可以粘贴在某人的页面上以创建iFrame。我希望此人能够将脚本粘贴到他们想要显示iFrame的位置。

但是,我无法弄清楚如何将DOM创建的iFrame附加到粘贴脚本的位置。它总是将它附加到身体的最底部。

我如何追加到位?

3 个答案:

答案 0 :(得分:11)

毫米。你可以做:

document.write("<div id='iframecontainer'></div>");
document.getElementById('iframecontainer').innerHTML = '...';

但是在很多不同的层面上感到丑陋/错误。不过,我不知道有任何其他选择。

编辑:实际上,快速谷歌搜索显示this artlcle,其中讨论了为什么document.write难看,并为您所处的特定泡菜提供了一个不错的选择:给您的{ {1}}标记ID!

script

然后你可以获得脚本标签的引用并在它之前插入iframe:

<script id="iframeinserter" src=".."></script>

答案 1 :(得分:2)

Paulo的答案也可以在没有ID的情况下完成,只需查找最后一个&lt; script&gt;元件。这必须是我们所处的脚本块,因为JavaScript保证当前脚本块的结束标记之外的所有内容尚未被解析(*):

 var scripts= document.getElementsByTagName('script');
 var script= scripts[scripts.length-1];
 script.parentNode.insertBefore(d, script);

如果你愿意,可以将它放在onload / ready函数中,但是如果是这样的话,'var script'必须在include-time而不是ready函数中计算(当执行时,更多&lt; script&gt; s将已被解析)。

(*:除了&lt; script defer&gt;的情况。)

答案 2 :(得分:1)

如果用户可以提供iframe所在元素的ID,则可以使用css将iframe移动到页面上的位置。