动态添加脚本标记到页面

时间:2012-03-02 08:09:11

标签: javascript dom insert

我正在尝试使用insertBefore为dom添加脚本。

当通过控制台运行命令时,脚本按预期执行,但是当通过代码运行相同的代码段时,它拒绝执行。

这是我正在使用的代码。

var el = document.getElementsByTagName('div')[0];
var s = document.createElement('script');
s.text = 'alert("abc");'
el.parentNode.insertBefore(s, el.nextSibling)



el.parentNode.replaceChild(s.childNodes[0], el);
el = s.childNodes[0];
for(var i = s.childNodes.length - 1; i >= 0 ; i--)
    el.parentNode.insertBefore(s.childNodes[i], el.nextSibling);

这是将脚本添加到DOM但不执行它.a

1 个答案:

答案 0 :(得分:0)

我无法复制您的问题:

http://jsfiddle.net/treeface/8F8bK/

在DOM完全加载后,您确定您的代码正在运行吗?如果你不是,你可能想要运行这样的代码:

window.onload = function() {  
    var el = document.getElementsByTagName('div')[0];
    var s = document.createElement('script');
    s.text = 'alert("abc");'
    el.parentNode.insertBefore(s, el.nextSibling)
};