android webview, javascript, почему document.getElementsByTagName ('iframe') не возвращает все фреймы - PullRequest
0 голосов
/ 08 мая 2020

В приложении Android webview размещает html и хотел бы прослушивать все события завершения загрузки и обратный вызов в Android через мост Javascript webview. фрагмент ниже:

<html>
<header>
  <script>
    document.addEventListener("DOMContentLoaded", function(event) {
      // - Code to execute when all DOM content is loaded.
      // - including fonts, images, etc.

      var frames = document.getElementsByTagName('iframe');

      console.log(' document.addEventListener, frames[0]:' + frames[0] + ', frames.length:' + frames.length);

      for (var i = 0; i < frames.length; i++) {
        var fm = frames[i]
        var j = i
        fm.onload = function() {
          console.log('>>> iframeLoad(' + j + ')' + fm + ' this:' + this)
        };
      }
    });
  </script>
</header>

<body>

  ......

  <div class="iframe-wrapper">
    <div class="iframe default" style="padding-bottom:56%;">
      <blockquote data-src="https://www.youtube.com/embed/AjRDgLIXpmc" scrolling="no">
        <div class="caas-card-loader"></div>
        <noscript>
          <iframe src="https://www.youtube.com/embed/AjRDgLIXpmc" ></iframe>
        </noscript>
      </blockquote>

      <div class="video-with-iframe">
        <div class="iframe-wrapper">
          <div class="iframe default" style="padding-bottom:56%;">
            <blockquote data-src="https://www.someone.com/090000401.html?format=embed&amp;region=US&amp;allowfullscreen>
              <div class=" card-loader "></div>
              <noscript>
                <iframe src="https://www.someone.com/090000401.html?format=embed&amp;region=US&amp;lang=en-US&amp; "allowfullscreen></iframe>
              </noscript>
            </blockquote>
          </div>
        </div>
      </div>

        ......

</body>
</html>

но журнал показывает, что большую часть времени в массиве есть только один iFrame, и довольно часто iframe имеет размер 0.

Пытался поставить скрипт перед закрывающим тегом </body>, все то же самое. сценарий правильный? или каков правильный / точный способ прослушивания завершения загрузки iframe?

...