Javascript 如果加载事件已触发,则将加载事件绑定到iframe或run函数

Javascript 如果加载事件已触发,则将加载事件绑定到iframe或run函数,javascript,jquery,iframe,event-handling,Javascript,Jquery,Iframe,Event Handling,假设我要将加载事件绑定到iframe: var callback = function() { //Loaded }; $('iframe').one('load', callback); 这已经足够好了,只是我不能确定iframe是否已经加载。在这种情况下,加载事件已经触发,我的函数将永远不会运行 如何检查iframe是否已加载 var callback = function() { //Loaded }; if(iframe already loaded) { ca

假设我要将加载事件绑定到iframe:

var callback = function() {
    //Loaded
};
$('iframe').one('load', callback);
这已经足够好了,只是我不能确定iframe是否已经加载。在这种情况下,加载事件已经触发,我的函数将永远不会运行

如何检查iframe是否已加载

var callback = function() {
    //Loaded
};
if(iframe already loaded) {
    callback();
} else {
    $('iframe').one('load', callback);
}

您可以检查
readyState

var iframe = $('iframe');
if (iframe.prop('contentWindow') && iframe.prop('contentWindow').document.readyState === 'complete') {
    callback();
} else {
    iframe.one('load', callback);
}

检查这个@lmgonzalves:谢谢,但不完全是我想要的。我不想检查其他事件处理程序。我想确保即使我很晚才捕获加载事件,函数也能运行。您可以检查iframe类的源中定义的方法或变量。如果存在,则加载了iframe。@LarsEbert请参见此处的“我的答案”:在chrome readystate中,将“完成”,但使用
$iframe.contents()。find(“*”)
将返回一个空的
body
元素。