Sobes.tech
Junior

Ako zistiť, že iframe sa načítal?

sobes.tech AI

Odpoveď od AI

Existuje niekoľko spôsobov:

  1. 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ý!');
    };
    
  2. Pomocou atribútu onload v 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>
    
  3. Kontrola stavu document.readyState vo 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 load je vhodnejšia.

  4. 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.