Sobes.tech
Junior

Kaip sužinoti, ar iframe įkeltas?

sobes.tech AI

Atsakymas iš AI

Yra keletas būdų:

  1. Per load įvykį: Labiausiai paplitęs ir patikimas būdas.

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.onload = function() {
      // Kodas, vykdomas po iframe įkėlimo
      console.log('iframe įkeltas!');
    };
    
  2. Per HTML onload atributą:

    <iframe src="somepage.html" onload="iframeLoaded()"></iframe>
    
    <script>
    function iframeLoaded() {
      // Po įkėlimo kodas
      console.log('iframe įkeltas per onload atributą!');
    }
    </script>
    
  3. Patikrinimas document.readyState būsenos iframe viduje (jei turite prieigą prie iframe turinio):

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.onload = function() {
      const iframeDoc = iframeElement.contentDocument || iframeElement.contentWindow.document;
    
      if (iframeDoc.readyState === 'complete') {
        // Kodas po DOM pilno įkėlimo iframe viduje
        console.log('iframe DOM pilnai įkeltas!');
      }
    };
    

    Šis būdas mažiau patikimas nustatyti visų išteklių (paveikslėlių, skriptų) įkėlimą, load įvykis yra tinkamesnis.

  4. Naudojant addEventListener: modernesnis būdas prenumeruoti įvykį.

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.addEventListener('load', function() {
      // Kodas po iframe įkėlimo
      console.log('iframe įkeltas naudojant addEventListener!');
    });
    

Pasirinkimas priklauso nuo konteksto ir pageidavimų, tačiau load įvykis yra universaliausias ir patikimiausias nustatant pilną iframe įkėlimą, įskaitant visus jo išteklius.