43

私はdocument.GetElementById()正常に使用してきましたが、しばらくしてから再び機能させることができなくなりました。次のコードを見てください。

    <html>
    <head>
     <title>no title</title> 
     <script type="text/javascript">
     document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
     </script>
    </head>
    <body>
     <div id="ThisWillBeNull"></div>
    </body>
    </html>

私は今、いつも得document.getElementById("parsedOutput") is nullています。Firefox と Chrome のどちらを使用しているか、どの拡張機能を有効にしているか、または HTML にどのヘッダーを使用しているnullかは問題ではありません。

4

6 に答える 6

60

次のように script タグを使用できます。

<script defer>
    // your JavaScript code goes here
</script>

すべてがロードされた後、JavaScript はすべての要素に適用されます。

于 2010-04-13T18:34:41.137 に答える
39

これを試して:

 <script type="text/javascript">
  window.onload = function() {
   document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
  }
 </script>
于 2010-04-13T18:35:40.300 に答える
12

window.onloadがないと、スクリプトは呼び出されません。Javascript はイベント ベースの言語であるため、onload、onclick、onmouseover などの明示的なイベントがないと、スクリプトは実行されません。

<script type="text/javascript">  
  window.onload = function(){  
   document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";  
  }
</script>

オンロード イベント:

load イベントは、ドキュメントの読み込みプロセスの最後に発生します。この時点で、ドキュメント内のすべてのオブジェクトが DOM にあり、すべての画像とサブフレームの読み込みが完了しています。

https://developer.mozilla.org/en/DOM/window.onload

于 2010-04-13T18:43:45.723 に答える
6

タイミング。

要素を取得しているとき、ドキュメントは準備ができていません。

要素を取得する前に、ドキュメントの準備が整うまで待つ必要があります。

于 2010-04-13T18:34:23.760 に答える
5

ブラウザは、そのスクリプトを見つけるとすぐに実行します。その時点では、ドキュメントの残りの部分はまだロードされていません — その ID を持つ要素はまだありません。ドキュメントのその部分がロードされた後にそのコードを実行すると、問題なく動作します。

于 2010-04-13T18:35:44.647 に答える
-2
<script type="text/javascript">
  window.onload += function() {
   document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
  }
 </script>

ドキュメントの onload イベントに+=さらに を割り当てるために使用します。eventHandler

于 2010-04-13T18:47:07.900 に答える