我已经坚持了很长一段时间 - 任何帮助都会非常感激。
基本上我将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将脚本创建的视频播放器添加到完全错误的元素中。如果我使用appendChild,它将被添加到指定的正确元素。我认为这可能与jQuery的插入方法有关,如本答案中所述: Can't append <script> element
我正在使用的代码在Firefox和Chrome中运行良好,但在IE7&amp; 8我收到错误消息“无法获取属性的值'appendChild':对象为null或未定义”,并且在DOM中无法看到脚本标记。
如果我包含该行:
$("#blah_blah")[0].appendChild(document.createTextNode("test"));
文本节点“test”被添加到DOM中,并且可以在页面上看到 - 因此看起来“appendChild”确实有效,但是附加脚本标记存在问题。
可能是IE特定的安全问题吗?
答案 0 :(得分:2)
出了什么问题:
$.getScript("script.js");