Sto provando a rilevare quando un iframe e il suo contenuto sono stati caricati ma non hanno avuto molta fortuna. La mia applicazione accetta alcuni campi di testo nella finestra padre e aggiorna l'iframe per fornire un'anteprima liveRilevare quando il contenuto Iframe è stato caricato (Cross browser)
Ho iniziato con il seguente codice (YUI) per rilevare quando si verifica l'evento di caricamento iframe.
$E.on('preview-pane', 'load', function(){
previewBody = $('preview-pane').contentWindow.document.getElementsByTagName('body')[0];
}
'anteprima-pane' è l'ID del mio iframe e sto usando YUI per fissare il gestore di eventi. Tuttavia, il tentativo di accedere al corpo nella mia callback (su caricamento iframe) non funziona, penso perché l'iframe viene caricato prima che il gestore eventi sia pronto. Questo codice funziona se ritarda il caricamento dell'iframe facendo in modo che lo script php che lo genera dorma.
Fondamentalmente, sto chiedendo qual è l'approccio corretto tra i vari browser per rilevare quando l'iframe è stato caricato e il suo documento è pronto?
Partendo con YUI è una cattiva idea (così come qualsiasi altra libreria JS). Perché? Perché semplicemente non puoi sapere che magia sta facendo quella libreria. Se non sono in grado di supportare "caricare" completamente, è meglio farlo da soli in un javascript chiaro e leggibile. – Christian
Spesso è possibile leggere il codice sorgente della libreria @Christian. Trovo che questo di solito ti dia ottimi consigli su come farlo da solo, indipendentemente dal fatto che tu usi o meno la loro implementazione. – AJP
@ AJP Hai frainteso il mio punto. Se stai facendo qualcosa di cui non sei sicuro, è meglio avere meno codice, quindi c'è meno spazio per errori. – Christian