JavaScript で DOM 要素の取得など、ブラウザがホームページの読み込み完了時に何らかの処理を行いたい場合、body の閉じタグの直前に記述するか window.onload=function()~ を使用する。
最近は、jQuery ばかりを使っていて(というか、「jQuery(function($){」の意味など忘れていて) JavaScript で要素を操作することがなかったので、すっかり忘れていたのでメモ。
以下のような場合、p 要素を読み込む前に実行されるので、「contact」は「null」になり、思ったとおりには表示されない。
<pre> <script type="text/javascript"> <!-- var contact = document.getElementById('contact'); contact.innerHTML = '<a href="xxx">contact</a>'; // --> </script> </pre> <body> <p id="contact"></p> </body>
これに対処するには、
<body> <p id="contact"></p> <pre> <script type="text/javascript"> <!-- var contact = document.getElementById('contact'); contact.innerHTML = '<a href="xxx">contact</a>'; // --> </script> </pre> </body>
window.onload を利用する場合。
<body> <pre> <script type="text/javascript"> <!-- window.onload=function(){ var contact = document.getElementById('contact'); contact.innerHTML = '<a href="xxx">contact</a>'; } // --> </script> </pre> <p id="contact"></p> </body>