Создание события OnLoad для iframe

Часто возникает необходимость повесить обработчик события onload на объект window внутри динамически создаваемого iframe.

Сразу после создания iframe свойство contentWindow равно нулю, поэтому непосредственно после создания iframe повесить обработчик невозможно.

Оно станет доступно через некоторое время.

Я предлагаю проверять на ноль свойство contentWindow каждые сто миллисекунд, пока оно не получит значение, после чего установить обработчик события onload:

Исходный код этого примера:
<iframe src="/images/sunlife.jpg"></iframe>
<script>
var onloadfunc = function(){
    alert('loaded!!!');
};

(function(){
    if (!frames[0].contentWindow){
         setTimeout(arguments.callee,100);
         return;
    }
    frames[0].contentWindow.onload = onloadfunc;
})();
</script>

В этом примере анонимная функция вызывает саму себя через каждые 100 миллисекунд.


.