лучший способ создания динамических фреймов в jQuery? - PullRequest
11 голосов
/ 10 ноября 2009

Итак, у меня есть следующий код, который выполняет setInterval, пока iframe не станет доступным для записи.

$( '#testdiv').append( $('<iframe id="testiframe"/>') );
var t = setInterval(function(){
    if(document.getElementById('testiframe') !== 'undefined'){
        clearInterval(t);
        $('#testiframe').contents().find('body').append('asd'); 
    }
}, 15);

По сути, jQuery создает элемент iframe и загружает его в DOM. Однако, iframe не доступен сразу, поэтому дополнительные вызовы jQuery, которые закодированы, должны произойти сразу после слов. С этим фрагментом кода он выполняет простую проверку интервала до появления нового iframe, а затем записывает «asd» в его содержимое.

Я потратил около часа на то, чтобы опробовать различные методы создания цепочек для создания iframe, но на самом деле ничего не работает. Все это кажется вопросом времени. Я пробовал $ ('# testiframe'). Live ('load', function () {}); и это совсем не работает.

Так у кого-нибудь есть более чистые рекомендации по этому поводу?

1 Ответ

26 голосов
/ 10 ноября 2009

Может быть, просто обычное событие без live?

$('<iframe id="testiframe"/>').load(function(){
    $('#testiframe').contents().find('body').append('asd');
}).appendTo("#testdiv");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...