注入的javascript不执行

dan*_*nbo 7 javascript jquery

我正在尝试编写一段将网页与外部系统集成的 JavaScript。目前,我拥有的是非常少量的代码,可以动态地将脚本元素插入到页面中。

$(document).ready(function() {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://example.com/example.php?arg1=1&arg2=2";
    document.body.appendChild(script);
});
Run Code Online (Sandbox Code Playgroud)

外部系统返回的 JS 是一个大型的单行 document.write 调用,它将一张表写入页面。

document.write('<table><tr><td>blah</td></tr></table>');
Run Code Online (Sandbox Code Playgroud)

当我将此脚本元素注入页面时,我可以使用 DOM 检查器看到它,但该脚本似乎没有执行。如果我手动将脚本元素放入 HTML 中,则 javascript 执行得很好(因此它不是同源策略或格式错误的 html 错误...),但我希望它是动态的。

有什么想法为什么 JavaScript 不执行吗?

dav*_*tto 1

因为你只是包含它,而不是执行。当您使用 jQuery 时,请查看该$.getScript()函数。

http://api.jquery.com/jQuery.getScript/
Run Code Online (Sandbox Code Playgroud)

它将满足您的需求。该函数是一个 Ajax 函数,因此请小心,因为它的行为是异步的。使用其回调来执行基于加载脚本的代码。

编辑:菲利克斯纠正了我有关脚本执行的问题,但我仍然认为您可以尝试一下该功能。