如果load-event已经触发,则将load-event绑定到iframe或run function

Lar*_*ert 5 javascript iframe jquery event-handling

假设我想将load-event绑定到iframe:

var callback = function() {
    //Loaded
};
$('iframe').one('load', callback);
Run Code Online (Sandbox Code Playgroud)

这很好用,除了我不能确定iframe尚未加载.在这种情况下,load-event已经触发,我的函数永远不会运行.

如何检查iframe是否已加载?

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

Bla*_*ise 1

您可以检查readyState

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