使用 javascript 将脚本附加到头部 - 奇怪的行为 [英] Appending scripts to head using javascript - weird behavior
本文介绍了使用 javascript 将脚本附加到头部 - 奇怪的行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要解决的问题是一个广告加载脚本,它使用 jsonp 加载广告代码并将其插入到 dom 中.
现在有时广告代码会包含 javascript 标签,我认为只需将它们移动到 head 部分,它们就会运行.理论上这很好用,但是当我制作一个脚本将脚本标签移动到头部时,我遇到了一些奇怪的行为.
所以我写了这段代码只是为了测试脚本移动部分,消除了作为错误源的其余代码.
我得到相同的结果,如果我在 div 中只有两个脚本,它会移动其中一个,如果我有 3 个脚本,它会移动其中的 2 个.在下面粘贴的代码中,它移动了脚本 1 和 3,跳过了远程 javascript 引用和最后一个脚本标记.
至少知道为什么会发生这种情况以及是否可以解决会很有趣.
为了澄清一件事,如果我首先放置远程 jquery 脚本,然后放置一个简单的脚本标签,它会将远程脚本标签移动到头部并跳过第二个脚本标签.
<头><script type="text/javascript">//获取 div id功能测试() {var td = document.getElementById('testId');var 脚本 = td.getElementsByTagName("script");console.log("传输到头部的脚本数量:"+scripts.length);for(i=0;i<scripts.length;i++) {var curScript = 脚本 [i];document.head.appendChild(curScript);}}头部><body onload="test();"><div id="testId"><script type="text/javascript">var firstScript = 1;</script><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><script type="text/javascript">var secondScript = 1;</script><script type="text/javascript">varthirdScript = 1;</script>