onloadとは何ですか?
「onload」は、Webページの読み込みが完了した際に、特定のJavaScriptコードを実行するためのHTML属性です。画像、スクリプト、CSS、フレームなど、ページ上のすべての要素が完全に読み込まれた後に、onloadイベントが発生します。
onloadの用途
onload属性は、様々な用途で活用できます。代表的な例としては、以下のようなものがあります。
- ページ読み込み後に画像のサイズを変更する
- ページ読み込み後にアニメーションを開始する
- ページ読み込み後に特定の関数を呼び出す
- ユーザーに読み込み完了を通知するメッセージを表示する
onloadの使い方
onload属性は、主に以下の3つの要素で使用されます。
要素 | 説明 |
---|---|
<body> |
ページ全体が読み込まれたときにイベントが発生します。 |
<img> |
画像が完全に読み込まれたときにイベントが発生します。 |
<iframe> |
インラインフレームが完全に読み込まれたときにイベントが発生します。 |
<body>タグでの使用例
<body onload="ページ読み込み完了時の処理();">
</body>
<img>タグでの使用例
<img src="image.jpg" onload="画像読み込み完了時の処理();" alt="説明文">
<iframe>タグでの使用例
<iframe src="page.html" onload="iframe読み込み完了時の処理();"></iframe>
注意点
- JavaScriptコードが複雑な場合、ページの読み込み速度に影響を与える可能性があります。
- 一部のブラウザでは、onloadイベントが正常に動作しない場合があります。
参考資料
関連QA
Q1: onloadイベントは、JavaScriptファイルの読み込み完了時にも発生しますか?
A1: いいえ、onloadイベントは、HTMLドキュメント内のすべての要素(画像、スクリプト、CSSなど)が完全に読み込まれた後に発生します。外部JavaScriptファイルの読み込み完了を検知するには、<script>
タグのdefer属性やasync属性を使用する必要があります。
Q2: onload属性とDOMContentLoadedイベントの違いは何ですか?
A2: onloadイベントは、ページ上のすべての要素が完全に読み込まれた後に発生するのに対し、DOMContentLoadedイベントは、HTMLドキュメントの解析とDOMツリーの構築が完了した時点で発生します。そのため、DOMContentLoadedイベントの方が、onloadイベントよりも早く発生します。
Q3: onload属性を使用せずに、ページ読み込み完了時に処理を実行することはできますか?
A3: はい、JavaScriptのwindow.addEventListener
メソッドを使用して、"load"イベントをリスニングすることで、onload属性を使用せずにページ読み込み完了時の処理を実行することができます。
<script>
window.addEventListener('load', function() {
// ページ読み込み完了時の処理
});
</script>
その他の参考記事:jquery load イベント