javascript - 动态添加脚本标签到页面

标签 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 但不执行它。

最佳答案

我无法重现您的问题:

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)
};

关于javascript - 动态添加脚本标签到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529986/

相关文章:

javascript - 按键事件发生后如何获取文本光标位置?

javascript - Node.js 如何将 gzip 流通过管道传输到 writestream

javascript - 在javascript中垂直定位工具提示

javascript - 使用javascript处理HTML输入(日期)类型中的日期

java - 将数据插入到java JDBC中的很多列中

mysql - 在表中插入 2 个值

sql-server - 将触发器复制行插入另一个重复表 SQL Server 2008

javascript map 对象值

javascript - JSF/PrimeFaces ajax 更新破坏了 jQuery 事件监听器函数绑定(bind)

javascript - 在循环结构中将元素附加到 DOM