私はこのサンプルドキュメントを持っています:
<html>
<body>
<script type="text/javascript">
document.body.onload = myFunc();
function myFunc() {
element = document.getElementById('myDiv');
element.innerHTML = 'Hello!';
}
</script>
<div id="myDiv"></div>
</body>
</html>
myFunc
のコールバックである場合、なぜ「要素」がnullになるのdocument.body.onload
ですか?
代わりに、スクリプトがdivの後に挿入された場合、次のように機能します。
<html>
<body>
<div id="myDiv"></div>
<script type="text/javascript">
document.body.onload = myFunc();
function myFunc() {
element = document.getElementById('myDiv');
element.innerHTML = 'Hello!';
}
</script>
</body>
</html>
私の質問はonload
、ハンドラー関数内でイベントを使用する場合、DOM全体を使用する必要があるかどうかです。なぜ私はすべきではないのですか?