我已经坚持了很长一段时间 - 任何帮助都会非常感激。
基本上我将 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/