Junior
Come sapere se l'iframe si è caricato?
sobes.tech AI
Risposta dell'AI
Esistono diversi metodi:
-
Attraverso l'evento
load: Il metodo più comune e affidabile.const iframeElement = document.getElementById('myIframe'); iframeElement.onload = function() { // Codice eseguito dopo il caricamento dell'iframe console.log('iframe caricato!'); }; -
Attraverso l'attributo
onloadin HTML:<iframe src="somepage.html" onload="iframeLoaded()"></iframe> <script> function iframeLoaded() { // Codice dopo il caricamento console.log('iframe caricato tramite attributo onload!'); } </script> -
Verifica dello stato
document.readyStateall’interno dell’iframe (se si ha accesso al contenuto dell’iframe):const iframeElement = document.getElementById('myIframe'); iframeElement.onload = function() { const iframeDoc = iframeElement.contentDocument || iframeElement.contentWindow.document; if (iframeDoc.readyState === 'complete') { // Codice dopo il caricamento completo del DOM all’interno dell’iframe console.log('DOM dell’iframe completamente caricato!'); } };Questo metodo è meno affidabile per determinare la prontezza di tutte le risorse (immagini, script) all’interno dell’iframe, l’evento
loadè più adatto. -
Utilizzo di
addEventListener: Metodo più moderno di sottoscrizione all’evento.const iframeElement = document.getElementById('myIframe'); iframeElement.addEventListener('load', function() { // Codice dopo il caricamento dell’iframe console.log('iframe caricato con addEventListener!'); });
La scelta del metodo dipende dal contesto e dalle preferenze, ma l’evento load è il più universale e affidabile per determinare il caricamento completo dell’iframe, comprese tutte le sue risorse.