Tak więc mam następujący kod, który wykonuje setInterval, aż iframe jest dostępna do zapisu.lepszy sposób tworzenia dynamicznych elementów iframe w jQuery?
$('#testdiv').append($('<iframe id="testiframe"/>'));
var t = setInterval(function(){
if(document.getElementById('testiframe') !== 'undefined'){
clearInterval(t);
$('#testiframe').contents().find('body').append('asd');
}
}, 15);
Zasadniczo jQuery tworzy element iframe i ładuje go do DOM. Jednak element iframe nie jest dostępny od razu, więc dodatkowe wywołania jQuery, które są zakodowane tak, by miały miejsce tuż po nim. Za pomocą tego kawałka kodu wykonuje on proste sprawdzanie interwałowe, aż nowa pozycja iframe jest dostępna, a następnie zapisuje "asd" do jej zawartości.
Spędziłem około godziny próbując różnych metod łączenia metod tworzenia elementów iframe, ale nic tak naprawdę nie działa. Wszystko wydaje się kwestią czasu. Próbowałem $ ('# testiframe'). Live ('load', function() {}); i to w ogóle nie działa.
Czy ktoś ma czystsze zalecenie w tej sprawie?
pokrewne: http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe – artlung