Javascript 如何等待脚本节点完成加载?
在javascript中,我在iframe中插入一个Javascript 如何等待脚本节点完成加载?,javascript,jquery,html,Javascript,Jquery,Html,在javascript中,我在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 = "
,如下所示:
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脚本还没有完成加载。有没有办法等到装载完毕
谢谢。在第一个脚本末尾添加回调 在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);
关键是使用
script.onload=functionName代码>并修复了IE8。有关完整代码,请参阅
加载jQuery后,可以与success参数一起使用。script.onready=function(){…}
(或者作为一个很酷的家伙,使用addEventListener/attachEvent)我想你是说jQuery.onready=function(){…}
,然后在函数中,我加载了script
变量?我尝试了这个jquery.onready=function(){alert(1);}
,但警报从未发生过。实际上,它的onload
不是onready
…还有其他方法吗?我不能修改jquery-1.9.1.min.js
文件编辑答案以显示一个带有计时器的方法。