javascript - 将 Javascript 注入(inject) DOM

标签 javascript jquery dom

<分区>

我正在尝试将一些 js 动态注入(inject)到 DOM 元素中以供执行。但是,如果我在 $(document).ready() 处注入(inject),则不会评估脚本(但会正确注入(inject))。此外,如果我尝试在 DOM 加载时注入(inject),则容器元素尚不存在。我已经通过在容器中硬编码脚本标签进行了测试,效果很好。有没有办法将 js 注入(inject) DOM 元素,并在 DOM 准备就绪或页面加载时对其进行评估?

$(document).ready(function(){
    var container = document.getElementById('container_div');
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.appendChild(document.createTextNode('[script]'));
    container.appendChild(script);
    //I've also tried .insertBefore and
    //.parentNode.insertBefore and jQuery's .append()
});

我正在努力实现的目标是否可行?

最佳答案

在纯 javascript 中:

var s = document.createElement('script');
s.setAttribute('src','js/myscript.js');
document.body.appendChild(s);

这是来自 jQuerify我用它来将 jquery“导入”到任何页面,这样我就可以用 Firebug 破解它,但它应该适用于任何脚本。

关于javascript - 将 Javascript 注入(inject) DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553857/

相关文章:

JavaScript:旋转多边形

javascript - 在纯 JavaScript 中显示/隐藏 if

javascript - PHP session 变量未解析,但 ISSET 表示它正在运行且位于 0

javascript - JQuery 日期选择器 : put week number in the input box instead of selected day

javascript - 使用 contenteditable div 修复光标位置正确

php - 单步执行 xml,在标签处做一些特定的事情

javascript - 持久化状态使用 vuex-persistedstate : store state in first tab doesnot update when i mutate state in another tab

javascript - jQuery fadeIn() 无法正常工作

javascript - 我如何遍历嵌套的部分元素?

javascript - Chrome 扩展程序 : Remove body attributes from content script