在DOM中动态插入脚本

时间:2011-08-17 23:16:53

标签: javascript dom

我正在尝试理解为什么此代码不起作用且警报输出只是空白。

<script type="text/javascript">
(function() {
  ... 
  var s = document.getElementsByTagName('script')[0]; alert(s.innerHTML);       
  s.parentNode.insertBefore(res, s);
  ... 
})();
</script>

如果我没错,它应该在 s 之前添加 res 。这就是我特别需要的,因为我试图将它附加到body并且它已成功添加(在执行此操作之后我必须在此函数中运行一些代码,因此如果脚本未在之前加载,这样的代码会出错。)

此功能应该在加载文档时运行还是问题?特别是, getElementsByTagName 函数似乎没有返回任何内容。

感谢大家。

1 个答案:

答案 0 :(得分:0)

在加载文档之前,您无法运行此类代码。必须在运行之前加载此代码(请参阅此处的循环参数)。到那时,文档的其余部分已经加载了很多。您可以在加载文档后动态加载脚本。如果您需要在其他脚本之前加载脚本,那么您必须按照运行所需的顺序将它们全部放入文档中,或者您需要按照运​​行所需的顺序动态添加它们,并且您将在加载下一个负载之前需要跟踪一个负载的完成情况。

如果你想描述你想要解决的更广泛的问题,我们可能会建议一个比你追求的更优雅的解决方案。