绑定load-event到iframe,如果load-event已经触发,则绑定run函数

Bind load-event to iframe or run function if the load-event already fired

本文关键字:load-event 绑定 run 函数 iframe 如果      更新时间:2023-09-26

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

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

这工作得很好,除了我不能确定iframe还没有加载。在这种情况下,load-event已经触发,我的函数将永远不会运行。

如何检查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);
}