在javascript中,我将<script tag>
插入iframe中,如下所示:
var iframe = document.getElementById('iframe');
var doc= iframe.contentWindow.document.getElementsByTagName('head')[0];
var jquery = document.createElement("script");
jquery.type = "text/javascript";
jquery.src = "jquery-1.9.1.min.js";
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "blah.js";
doc.appendChild(jquery);
doc.appendChild(script);
但是,blah.js
中存在jquery代码,有时此脚本失败,因为jquery脚本尚未完成加载。有没有办法等到它加载完毕?
感谢。
答案 0 :(得分:2)
关键是使用script.onload = functionName;
修复IE8。有关完整代码,请参阅https://stackoverflow.com/a/15437678/2227298。
加载jQuery后,您可以将jQuery.getScript
与success参数一起使用。
答案 1 :(得分:1)
在第一个脚本的末尾添加一个回调。
在jquery.js的末尾:
if (window.jqueryLoaded)
window.jqueryLoaded();
你的代码中的:
// create the function that will be called once jquery finishes loading
function jqueryLoaded()
{
doc.appendChild(blah);
}
// load jquery
doc.appendChild(jquery);
如果您无法修改jquery.js文件,请使用计时器替代(不是真正推荐)方式:
var checkjQuery = window.setInterval(function() {
if (!window.jQuery)
return;
window.clearInterval(checkjQuery);
window.jqueryLoaded();
}, 10);