Junior
Ako zistiť, že iframe sa načítal?
sobes.tech AI
Odpoveď od AI
Existuje niekoľko spôsobov:
-
Pomocou udalosti
load: Najbežnejší a najspoľahlivejší spôsob.const iframeElement = document.getElementById('myIframe'); iframeElement.onload = function() { // Kód, ktorý sa vykoná po načítaní iframe console.log('iframe načítaný!'); }; -
Pomocou atribútu
onloadv HTML:<iframe src="somepage.html" onload="iframeLoaded()"></iframe> <script> function iframeLoaded() { // Kód po načítaní console.log('iframe načítaný cez atribút onload!'); } </script> -
Kontrola stavu
document.readyStatevo vnútri iframe (ak máte prístup k obsahu iframe):const iframeElement = document.getElementById('myIframe'); iframeElement.onload = function() { const iframeDoc = iframeElement.contentDocument || iframeElement.contentWindow.document; if (iframeDoc.readyState === 'complete') { // Kód po úplnom načítaní DOM vo vnútri iframe console.log('DOM iframe je úplne načítaný!'); } };Tento spôsob je menej spoľahlivý pri určovaní pripravenosti všetkých zdrojov (obrázkov, skriptov) vo vnútri iframe, udalosti
loadje vhodnejšia. -
Použitie
addEventListener: Modernejší spôsob odberu udalostí.const iframeElement = document.getElementById('myIframe'); iframeElement.addEventListener('load', function() { // Kód po načítaní iframe console.log('iframe načítaný pomocou addEventListener!'); });
Výber spôsobu závisí od kontextu a preferencií, ale udalosť load je najuniverzálnejšia a najspoľahlivejšia na určenie úplného načítania iframe vrátane všetkých jeho zdrojov.