- ベストアンサー
DOMを使った、スクリプトを自分で組み立てたときまたは、ソース掲載サイ
DOMを使った、スクリプトを自分で組み立てたときまたは、ソース掲載サイトのスクリプトを、変数名やfunction名を変えて実行すると、document.getElementById("obj") is null という風になり、全くできません。 (objにはid名が入ります。) なぜでしょうか。
- みんなの回答 (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)
is nullがどこからでてきたのかわかりませんが、typeofを チェックしてみては? <script> var ob=document.getElementById("obj"); if(typeof obj=="undefined") alert("no obj"); </script>
補足
typeofとはどのようなものですか?