以下代码无效的原因?
alert("1");
document.head.appendChild("<script type=\"text/javascript\" src=\"https://getfirebug.com/firebug-lite.js\"></script>");
alert("2");
(我知道它正在破裂,因为1被警告但不是2。)
完成同样事情的正确方法是什么?即,将脚本标记附加到文档头,其中标记使用SRC属性获取.js文件。我不希望它写内联的JavaScript。
谢谢!
答案 0 :(得分:25)
element.appendChild
期望节点不是字符串。您应首先创建节点并设置属性,然后附加它。
var sc = document.createElement("script");
sc.setAttribute("src", "https://getfirebug.com/firebug-lite.js");
sc.setAttribute("type", "text/javascript");
document.head.appendChild(sc);
对于不支持document.head
的旧浏览器(IE&lt; 9等)document.getElementsByTagName("head")[0].appendChild(sc);
答案 1 :(得分:0)
这将完成原始海报所需的操作,而无需创建新对象。
document.head.innerHTML += "<script type=\"text/javascript\" src=\"https://getfirebug.com/firebug-lite.js\"></script>";
该脚本将被添加到现有标题的末尾,而这可能不是您想要的。
信不信由你,这会将您的脚本放在标题的开头,而不会删除现有的标题:
document.head.innerHTML = "<script type=\"text/javascript\" src=\"https://getfirebug.com/firebug-lite.js\"></script>" + document.head.innerHTML;