• ベストアンサー

DOMを使った、スクリプトを自分で組み立てたときまたは、ソース掲載サイ

DOMを使った、スクリプトを自分で組み立てたときまたは、ソース掲載サイトのスクリプトを、変数名やfunction名を変えて実行すると、document.getElementById("obj") is null という風になり、全くできません。 (objにはid名が入ります。) なぜでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.2

おそらく、ドキュメントを読みこむ前に実行しているのでは? <script type="text/javascript"> // エラー var obj = document.getElementById("hoge"); </script> <body> <div id="hoge"></div> </body> よってwindow.onloadを利用する事になります。 window.onload = function() {  var obj = document.getElement... } が、onloadはひとつしか関数を割り当てられません。 よって最近では以下のようonloadイベントに関連付ける関数を指定するのが妥当でしょう。 function func() {  var obj = document.getElement... } if (window.addEventListener) {  // Firefox, Safari, その他もろもろ  window.addEventListener("load", func, false); } else if (window.attachEvent) {  // IEのみ  window.attachEvent("onload", func); } else {  // 念のため  window.onload = func; } 上記のようにブラウザ毎に処理を変える必要がありますので、個人的にはDOM操作やAjaxをするのであれば、prototype.jsやjQueryなどのクロスブラウザなライブラリを利用するのを強く推奨します。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

is nullがどこからでてきたのかわかりませんが、typeofを チェックしてみては? <script> var ob=document.getElementById("obj"); if(typeof obj=="undefined") alert("no obj"); </script>

noname#128209
質問者

補足

typeofとはどのようなものですか?

関連するQ&A