カテゴリ: JavaScript 更新日: 2026/09/15

JavaScriptのwindow.onloadの使い方と注意点を初心者向けに解説

JavaScriptのwindow.onloadの使い方と注意点
JavaScriptのwindow.onloadの使い方と注意点

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptでウェブページが全部読み込まれたときに処理を実行する方法ってありますか?」

先生

「はい、それがwindow.onloadです。ページの画像やスタイル、スクリプトなど全て読み込み終わったあとに処理を開始できます。」

生徒

「DOMContentLoadedとは違うんですか?」

先生

「違います。DOMContentLoadedはHTMLの構造だけが読み込まれた時点で処理を開始しますが、window.onloadは画像やCSSも全部読み込まれるのを待ちます。」

生徒

「なるほど、全部読み込まれるのを待つんですね。でも使うときの注意点はありますか?」

先生

「はい、いくつかあります。順番や複数登録の扱いなど、あとで詳しく見ていきましょう。」

1. window.onloadとは何か?

1. window.onloadとは何か?
1. window.onloadとは何か?

JavaScriptのwindow.onloadは、ウェブページの読み込みが全て完了したタイミングで処理を実行するためのイベントです。HTMLだけでなく、画像やスタイルシート、外部スクリプトなども読み込み終わるまで待つため、ページ全体が安定している状態で処理を行えます。初心者でもページ表示後に安全に操作したい場合に便利です。

2. 基本的なwindow.onloadの書き方

2. 基本的なwindow.onloadの書き方
2. 基本的なwindow.onloadの書き方

基本的な書き方はとてもシンプルです。window.onloadに関数を代入して、処理内容を書くだけです。


window.onload = function() {
  alert("ページの読み込みが完了しました!");
};

この例では、ページが完全に読み込まれるとアラートが表示されます。画像やCSSが多いページでも安全に処理が開始されます。

3. 複数の処理を同時に登録するときの注意点

3. 複数の処理を同時に登録するときの注意点
3. 複数の処理を同時に登録するときの注意点

window.onloadは1つの関数しか登録できないため、後から別の処理を上書きしてしまう危険があります。複数の処理を同時に実行したい場合は、関数をまとめて書くか、addEventListenerを使う方が安全です。


window.onload = function() {
  console.log("最初の処理");
};

window.onload = function() {
  console.log("後から追加した処理");
};
// 結果: "後から追加した処理"だけ実行される

このように、上書きされる点に注意が必要です。

4. 複数処理を安全に書く方法

4. 複数処理を安全に書く方法
4. 複数処理を安全に書く方法

複数の処理を登録したい場合はaddEventListenerを使うのが一般的です。loadイベントを使えば、上書きされずに順番通りに実行できます。


window.addEventListener("load", function() {
  console.log("最初の処理");
});

window.addEventListener("load", function() {
  console.log("後から追加した処理");
});
// 結果: "最初の処理" → "後から追加した処理" 両方実行される

これにより安全に複数の処理を実行でき、ページ全体のロード完了後にまとめて処理できます。

5. 画像や外部リソースを扱うときのメリット

5. 画像や外部リソースを扱うときのメリット
5. 画像や外部リソースを扱うときのメリット

画像や外部リソースが多いページでは、window.onloadを使うメリットがあります。例えば、スライドショーや画像ギャラリーの初期化など、全ての画像が表示されるのを待ってから処理することで、表示の崩れやエラーを防げます。


window.onload = function() {
  const images = document.querySelectorAll("img");
  images.forEach(img => {
    console.log(img.src + " が読み込み完了");
  });
};

全ての画像が読み込まれた後に処理するため、ユーザーに正しくコンテンツを表示できます。

6. onloadとDOMContentLoadedの違いを理解する

6. onloadとDOMContentLoadedの違いを理解する
6. onloadとDOMContentLoadedの違いを理解する

初心者が混乱しやすいのがDOMContentLoadedとの違いです。DOMContentLoadedはHTMLの構造が読み込まれたタイミングで発火し、画像やCSSの読み込みは待ちません。一方でwindow.onloadはページ全体が読み込まれるのを待ちます。


document.addEventListener("DOMContentLoaded", function() {
  console.log("HTMLの構造は読み込まれました");
});

window.onload = function() {
  console.log("ページ全体が読み込まれました");
};

HTMLだけで早く処理をしたい場合はDOMContentLoaded、全てのリソースが必要な場合はwindow.onloadを選びます。

7. 実践的な使い方の例

7. 実践的な使い方の例
7. 実践的な使い方の例

例えば、ページの読み込み完了後にナビゲーションバーをアクティブにしたり、初期アニメーションを開始したい場合はwindow.onloadが便利です。


window.onload = function() {
  const navbar = document.getElementById("navbar");
  navbar.classList.add("active");

  const banner = document.getElementById("banner");
  banner.style.opacity = 1; // アニメーション開始
};

こうすることで、ページ表示中の崩れを防ぎながら、ユーザー体験を向上させることができます。

8. まとめのポイント

8. まとめのポイント
8. まとめのポイント

ここまで学んだwindow.onloadの使い方と注意点を整理すると、以下の通りです。

  • ページ全体の読み込みが完了したタイミングで処理を実行できる
  • 複数登録すると上書きされるので、addEventListenerを使うのが安全
  • 画像や外部リソースが多い場合に特に有効
  • DOMContentLoadedとは違い、全リソース読み込みを待つ

初心者でも、window.onloadを正しく使えば、ページが完全に表示された後に安全にJavaScript処理を実行できます。

まとめ

まとめ
まとめ

今回はJavaScriptのwindow.onloadの基本的な使い方から、複数の処理を安全に登録する方法、画像や外部リソースの扱い方まで幅広く学びました。window.onloadはページ全体の読み込みが完了したタイミングで処理を実行できるため、初心者でも安全にDOM操作やスタイル操作、アニメーション開始などが行えます。ただし、複数の処理を同時に登録すると上書きされる可能性があるため、addEventListener("load", ...)を活用することが重要です。また、DOMContentLoadedとの違いを理解することで、処理のタイミングを正しく選べるようになり、ページ表示中の不具合やエラーを防ぐことができます。特に画像ギャラリーやスライドショーなど、全てのリソースが揃った状態で処理したい場合にはwindow.onloadが非常に役立ちます。

サンプルコードまとめ


// 複数処理を安全に登録する例
window.addEventListener("load", function() {
console.log("最初の処理が実行されました");
});

window.addEventListener("load", function() {
const navbar = document.getElementById("navbar");
if (navbar) navbar.classList.add("active");

const banner = document.getElementById("banner");
if (banner) banner.style.opacity = 1;
console.log("ナビバーとバナー処理が完了しました");
});

window.addEventListener("load", function() {
const images = document.querySelectorAll("img");
images.forEach(img => {
console.log(img.src + " が読み込み完了");
});
});
先生と生徒の振り返り会話

生徒

「先生、window.onloadを使うとページが全部読み込まれるまで待つんですよね?でも複数の処理を書くときはどうすればいいですか?」

先生

「はい、単純にwindow.onload = function(){...}と書くと、最後に書いた処理だけが実行されてしまいます。複数の処理を安全に実行したいときはaddEventListener('load', ...)を使うと、順番通りに全ての処理を実行できます。」

生徒

「なるほど。それなら画像やスタイルが多いページでも安心ですね。」

先生

「その通りです。スライドショーやギャラリーなどの初期化も、全てのリソースが読み込まれてから行うとエラーや崩れを防げます。」

生徒

「DOMContentLoadedとwindow.onloadの違いも覚えておいた方がいいですよね?」

先生

「はい、HTMLだけの処理ならDOMContentLoadedで十分ですが、画像や外部CSS、スクリプトも含めて全ての読み込みを待ちたい場合はwindow.onloadを使うのが正解です。」

生徒

「まとめると、ページ全体の読み込み後に処理を安全に行うにはwindow.onloadとaddEventListener('load', ...)を組み合わせる、HTMLだけならDOMContentLoadedを使う、と覚えればいいですね。」

先生

「その通りです。これで初心者でもページの表示タイミングに応じた正しいJavaScript処理が書けるようになります。」

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptローカルストレージとセッションストレージの違いを徹底解説!初心者向け保存機能ガイド
New2
JavaScript
JavaScriptのisNaN()とNumber.isNaN()の違いを理解しよう
New3
JavaScript
JavaScriptの配列型(Array)の基本と使い方まとめ
New4
Claude Code
Claude CodeでCSV読み込みと文字化け対策を相談する方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの比較演算子(==, ===, !=, !==)の違いを初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
Claude Code
Claude CodeでCSV読み込みと文字化け対策を相談する方法
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでZustandの状態に型を定義するベストプラクティス
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptで「Hello World」を出力する手順と解説
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの数値型(Number)の使い方と特徴まとめ
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptでContext APIによる状態管理に型をつける方法!初心者向け完全ガイド