Quindi ho il seguente codice che sta facendo un setInterval fino a quando l'iframe è disponibile per la scrittura.modo migliore per creare iframe dinamici in jQuery?
$('#testdiv').append($('<iframe id="testiframe"/>'));
var t = setInterval(function(){
if(document.getElementById('testiframe') !== 'undefined'){
clearInterval(t);
$('#testiframe').contents().find('body').append('asd');
}
}, 15);
Fondamentalmente ciò che accade è che jQuery crea l'elemento iframe e lo carica nel DOM. Tuttavia, l'iframe non è disponibile immediatamente così ulteriori chiamate jQuery che sono codificate per accadere subito dopo. Con questo pezzo di codice, esegue un semplice controllo dell'intervallo fino a quando il nuovo iframe è disponibile, quindi scrive "asd" sul suo contenuto.
Ho passato circa un'ora a provare diversi metodi di concatenamento dei metodi per la creazione di iframe, ma nulla funziona davvero. Sembra tutto una questione di tempismo. Ho provato $ ('# testiframe'). Live ('load', function() {}); e questo non funziona affatto.
Così qualcuno ha una raccomandazione più pulita su questo?
correlati: http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe – artlung