javascript - 动态添加脚本标签到加载的 HTML - IE7 和 8 中的错误

标签 javascript jquery html ajax

我已经坚持了很长一段时间 - 任何帮助都会非常感激。

基本上我将 HTML 加载到页面中,但加载的 HTML 需要在其中的特定位置包含外部脚本。我发现执行此操作的最佳方法是使用以下代码:

$('#blah').load('blah.htm',
    function(){
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = "[external script url + query string here]";
        $('#blah_blah')[0].appendChild(script);                 
});

编辑: 我使用“appendChild”而不是 jQuery 的“append”的原因是 $.append 将脚本创建的视频播放器添加到完全错误的元素。如果我使用 appendChild,它会被添加到指定的正确元素中。我认为这可能与 jQuery 的插入方法有关,如该答案中所述: Can't append <script> element

我使用的代码在 Firefox 和 Chrome 中运行良好,但在 IE7 和 8 中我收到错误消息“无法获取属性‘appendChild’的值:对象为空或未定义”,并且脚本标签无法在 DOM 中可见。

如果我包含以下行:

$("#blah_blah")[0].appendChild(document.createTextNode("test"));

文本节点“test”已添加到 DOM 中,并且可以在页面上看到 - 因此“appendChild”似乎可以正常工作,但附加脚本标签存在问题。

这可能是 IE 特定的安全问题吗?

最佳答案

有什么问题:

   $.getScript("script.js");

关于javascript - 动态添加脚本标签到加载的 HTML - IE7 和 8 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526814/

相关文章:

javascript - 单个浏览器选项卡中的多个 Javascript 解释器

javascript - 如果 &lt;script&gt; 位于正文末尾,为什么在 iOS 上不执行?

javascript - 了解 setTimeout 和clearTimeout 组成的循环函数

html - Firefox 中的输入接受属性

html - smarty tpl 文件没有正确读取 tpl 文件

javascript - autoGenerateWrapperClass 为 null

javascript - 如何使用 auth0-js 传递附加信息(登录后重定向用户)

jQuery 悬停高亮悬停链接和对应链接

jquery - 如何获取 Ajax.BeginForm 和 OnSuccess 之间的事件?

javascript - 将值从我的 .click() 函数传递到 if 语句