JavaScript を scriptタグで書く際、JavaScript の処理と html のパースは同じ時間の流れで進みます。 大抵は scriptタグを headタグ内に記述するため、いきなり DOM でアクセスしようとしても、body ですらパースされていません。 html のパースが終わって DOMツリーが出来上がるまで待つ必要があります。 ぶっちゃけ当たり前の話ですが、JavaScript も jQuery などのライブラリを使っていると、この辺を意識しなくなるので、ふと分からなくなる事があります。 なので見れば思い出すようにメモしておきます。 主にアクセス解析用のscriptタグはどこに書くべきか、よく忘れるのでメモ - kanonjiの日記 から、色々と考えていたら、なんだか気になってしまいました。 DOMツリーの完成*1を待ってから処理を始めるためのメソッド docume