0

タグが表示されたときにそのタグを使用して警告します

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      document.getElementsByTagName('iframe')[0].onload = function() {
        alert('loaded');
      }
    </script>
    <iframe></iframe>
  </body>
</html>

このコードが機能しているので、奇妙です:

<html>
  <head>
  </head>
  <body>
    <iframe></iframe>
    <script type="text/javascript">
      document.getElementsByTagName('iframe')[0].onload = function() {
        alert('loaded');
      }
    </script>
  </body>
</html>

Jsが機能するためにタグの下にある必要があるのはなぜですか? ここで何が問題なのですか?

4

2 に答える 2

0

アクセスしようとしている時点では、iframe タグは存在しません。
次のように、配列の長さを警告するだけで確認できます。

alert(document.getElementsByTagName('iframe'));

ページがロードされた後に JavaScript を実行することを考えたことはありますか? クロスブラウザーの問題を容易にするために、 jQueryなどのフレームワークを使用できます。または、すべての JavaScript コードを本文の一番下に配置します。

于 2011-10-11T18:57:22.773 に答える
0

script タグ内のコードはすぐに実行されるためです。最初の例では、その時点で iframe は存在しません。しかし、できることは、コードを (メイン ページの) onload イベントにラップすることです。例えば:

window.onload = function() { 
    //your code
}

そうすれば、コードをどこに配置してもかまいません。

于 2011-10-11T18:58:57.897 に答える