Вы можете попробовать настроить обработчик, который вызывается через тайм-аут, который проверит изображения, чтобы увидеть, доступны ли их свойства. Очистите таймер в обработчике событий load
, чтобы, если событие загрузки произошло первым, таймер не сработал. Если свойства недоступны, событие загрузки еще не сработало, и вы знаете, что ваш обработчик в конечном итоге будет вызван. Если это так, то вы знаете, что событие load произошло до того, как был установлен ваш обработчик, и вы можете просто продолжить.
псевдокод
var timer = null;
$(function() {
$(window).load( function() {
if (timer) {
clearTimeout(timer);
timer = null;
}
process();
});
timer = setTimeout( function() {
if (checkAvailable())
process();
}
}, 10*1000 ); // waits 10 seconds before checking
});
function checkAvailable()
{
var available = true;
$('img').each( function() {
try {
if (this.height == 0) {
available = false;
return false;
}
}
catch (e) {
available = false;
return false;
}
});
return available;
}
function process() {
... do the real work here
}