本記事では、JavaScriptのloadイベントの使い方についてサンプルコードを用いて分かりやすく解説しています。
loadイベントとは、画像やスタイルシートなど全てのリソースの読み込みが完了したタイミングで発火するイベントです。

- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる


Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!



初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!


- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる


loadイベントの使い方



loadイベントは、addEventListenerメソッドにloadを指定する方法とonloadプロパティを使う2種類あります!



使い方をそれぞれ別々に解説してるよ!
addEventListenerを使ったloadイベントの書き方
addEventListenerメソッドを使ってloadイベントを登録する時の書き方は以下の通りです。
window.addEventListener('load',function(){
// 処理内容を記述
});
windowオブジェクトに対してaddEventListenerメソッドを使います。第一引数に「load」を指定し、第二引数に指定した関数内にページの読み込みが完了された時に実行したい処理を記述します。



loadを使ったサンプルコードは以下の通りです。
上記サンプルでは、画像の読み込みが完了後に画像の横幅の値を取得し表示させています。
onloadプロパティの書き方
onloadプロパティを使ってloadイベントを登録する時の書き方は以下の通りです。
window.onload = function(){
// 処理内容を記述
};
addEventListenerメソッドと同様にwindowオブジェクトに対して、onloadプロパティを使い関数を代入します。代入した関数に全てのリソースが読み込まれたタイミングで実行したい処理を記述します。



onloadプロパティを使ったサンプルコードは以下の通りです。
上記サンプルの処理は、addEventListenerメソッドを使ったものと同様で画像の読み込みが完了後に画像の横幅の値を取得し表示させています。
addEventListenerメソッドのloadイベントとonloadプロパティの違い



loadイベントの2種類の書き方について理解できたのですが、2つの違いはあるんですか?



大きな違いとしてイベントを複数登録できるか、できないかの違いがあるよ!
これについては別記事で詳しく解説しているから興味のある方は下記のURLを参考にしてね!


loadイベントが必要になる場面
loadイベントは、初心者向けの参考書などでおまじないとして書いておくとチラホラ見受けますが、全ての読み込みが完了してから処理を実行するためボリュームのあるページなどでは読み込に時間がかかります。
画像のサイズを取得したいなどの処理では、loadイベントを使う必要がありますがDOMのツリー構築が完了した時点で実行できる処理の場合は「DOMContentLoaded」を使う方がloadイベントよりも早く動作することができます。
まとめ
今回はJavaScriptのloadイベントの使い方について解説しました。最後にポイントを軽くおさらいしましょう。
- loadイベントとは、画像やスタイルシートなど全てのリソースの読み込みが完了したタイミングで発火するイベント
- DOMのツリー構築が完了したタイミングで実行できる処理は、loadイベントではなく「DOMContentLoaded」を使う方が処理が早い
- addEventListenerメソッドで登録するloadイベントとonloadプロパティを使ったイベント登録の違いは複数のイベントを登録できるか、できないか