Sobes.tech
Junior

Как да разберете дали iframe е заредил?

sobes.tech AI

Отговор от AI

Има няколко начина:

  1. Чрез събитието load: Най-често срещаният и надежден начин.

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.onload = function() {
      // Код, който се изпълнява след зареждане на iframe
      console.log('iframe зареден!');
    };
    
  2. Чрез атрибута onload в HTML:

    <iframe src="somepage.html" onload="iframeLoaded()"></iframe>
    
    <script>
    function iframeLoaded() {
      // Код след зареждане
      console.log('iframe зареден чрез атрибута onload!');
    }
    </script>
    
  3. Проверка на състоянието document.readyState вътре в iframe (ако имате достъп до съдържанието на iframe):

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.onload = function() {
      const iframeDoc = iframeElement.contentDocument || iframeElement.contentWindow.document;
    
      if (iframeDoc.readyState === 'complete') {
        // Код след пълното зареждане на DOM вътре в iframe
        console.log('DOM на iframe е напълно зареден!');
      }
    };
    

    Този метод е по-малко надежден за определяне на готовността на всички ресурси (изображения, скриптове) вътре в iframe, събитието load е по-подходящо.

  4. Използване на addEventListener: По-модерен начин за абониране за събитие.

    const iframeElement = document.getElementById('myIframe');
    
    iframeElement.addEventListener('load', function() {
      // Код след зареждане на iframe
      console.log('iframe зареден с използване на addEventListener!');
    });
    

Изборът на метод зависи от контекста и предпочитанията, но събитието load е най-универсалното и надеждно за определяне на пълното зареждане на iframe, включително всички негови ресурси.