Sobes.tech
Junior

Jak zjistit, že iframe se načetl?

sobes.tech AI

Odpověď od AI

Existuje několik způsobů:

  1. Pomocí události load: Nejčastější a nejspolehlivější způsob.

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.onload = function() {
      // Kód, který se spustí po načtení iframe
      console.log('iframe načten!');
    };
    
  2. Pomocí atributu onload v HTML:

    <iframe src="somepage.html" onload="iframeLoaded()"></iframe>
    
    <script>
    function iframeLoaded() {
      // Kód po načtení
      console.log('iframe načten přes atribut onload!');
    }
    </script>
    
  3. Kontrola stavu document.readyState uvnitř iframe (pokud máte pří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 úplném načtení DOM uvnitř iframe
        console.log('DOM iframe je plně načten!');
      }
    };
    

    Tento způsob je méně spolehlivý pro určení připravenosti všech zdrojů (obrázků, skriptů) uvnitř iframe, událost load je vhodnější.

  4. Použití addEventListener: Modernější způsob přihlášení k události.

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.addEventListener('load', function() {
      // Kód po načtení iframe
      console.log('iframe načten pomocí addEventListener!');
    });
    

Volba metody závisí na kontextu a preferencích, ale událost load je nejuniverzálnější a nejspolehlivější pro určení úplného načtení iframe, včetně všech jeho zdrojů.