読み込み中...

初心者でも分かる!JavaScriptにおけるリダイレクトの全知識10選

JavaScriptリダイレクトのサンプルコード例 JS
この記事は約12分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptリダイレクトを使いこなすことができるようになります。

初心者でも分かるように、リダイレクトの基本から応用例まで徹底解説していきます。

サンプルコードも用意しているので、すぐに実践できます。

さっそく学んで、リダイレクトのプロになりましょう!

●JavaScriptリダイレクトとは

JavaScriptリダイレクトとは、ウェブページ上で特定の条件やアクションが発生した際に、ユーザーを別のページに自動的に移動させる機能のことです。

これを使うことで、ユーザー体験の向上や、特定のページへの誘導を行うことができます。

●リダイレクトの基本的な使い方

ここでは、JavaScriptでリダイレクトを実装する基本的な方法を2つ紹介します。

○サンプルコード1:window.locationを使ったリダイレクト

window.locationを使うと、現在のページを別のページにリダイレクトできます。

下記のコードは、ボタンをクリックすると指定したURLにリダイレクトする例です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプル1: window.locationを使ったリダイレクト</title>
</head>
<body>
  <button id="redirectBtn">リダイレクトする</button>

  <script>
    // ボタンを取得
    const redirectBtn = document.getElementById('redirectBtn');

    // ボタンがクリックされたらリダイレクト処理を実行
    redirectBtn.addEventListener('click', function() {
      // リダイレクト先のURLを指定
      const targetUrl = 'https://example.com';

      // リダイレクト実行
      window.location.href = targetUrl;
    });
  </script>
</body>
</html>

このサンプルでは、window.location.hrefにリダイレクト先のURLを代入することでリダイレクトが実行されます。

ボタンがクリックされると、指定したURL(この例では “https://example.com”)に移動します。

○サンプルコード2:location.replaceを使ったリダイレクト

location.replaceを使うと、現在のページを別のページにリダイレクトし、履歴に残さないようにできます。

下記のコードは、ボタンをクリックすると指定したURLにリダイレクトし、戻るボタンで戻れない例です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプル2: location.replaceを使ったリダイレクト</title>
</head>
<body>
  <button id="redirectBtn">リダイレクトする</button>

  <script>
    // ボタンを取得
    const redirectBtn = document.getElementById('redirectBtn');

    // ボタンがクリックされたらリダイレクト処理を実行
    redirectBtn.addEventListener('click', function() {
      // リダイレクト先のURLを指定
      const targetUrl = 'https://example.com';

      // リダイレクト実行(履歴に残さず)
      location.replace(targetUrl);
    });
  </script>
</body>
</html>

このサンプルでは、location.replaceメソッドを使用してリダイレクトを実行しています。

この方法では、リダイレクト後に戻るボタンで元のページに戻れなくなります。

これは、リダイレクト元のページが履歴から削除されるためです。

●リダイレクトの応用例

リダイレクトは、さまざまなシーンで応用できます。

次に、タイマーを使ったリダイレクトや条件に応じたリダイレクトなどの応用例を紹介します。

○サンプルコード3:タイマーを使ったリダイレクト

一定時間後に自動的にリダイレクトする場合、タイマーを使ってリダイレクトを実行できます。

下記のコードは、5秒後に指定したURLにリダイレクトする例です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプル3: タイマーを使ったリダイレクト</title>
</head>
<body>
  <p>5秒後にリダイレクトします...</p>

  <script>
    // リダイレクト先のURLを指定
    const targetUrl = 'https://example.com';

    // 5秒後にリダイレクト実行
    setTimeout(function() {
      window.location.href = targetUrl;
    }, 5000);
  </script>
</body>
</html>

このサンプルでは、setTimeout関数を使ってタイマーを設定し、5秒後にリダイレクトを実行しています。

○サンプルコード4:条件に応じたリダイレクト

ある条件が満たされたときにリダイレクトする場合、条件分岐を使ってリダイレクトを実行できます。

下記のコードは、ログインが成功した場合に指定したURLにリダイレクトする例です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプル4: 条件に応じたリダイレクト</title>
</head>
<body>
  <input id="username" type="text" placeholder="ユーザ名">
  <input id="password" type="password" placeholder="パスワード">
  <button id="loginBtn">ログイン</button>

  <script>
    // ログインボタンを取得
    const loginBtn = document.getElementById('loginBtn');

    // ログインボタンがクリックされたらリダイレクト処理を実行
    loginBtn.addEventListener('click', function() {
      const username = document.getElementById('username').value;
      const password = document.getElementById('password').value;

      // ログイン成功の条件を指定
      if (username === 'test' && password === '1234') {
        // リダイレクト先のURLを指定
        const targetUrl = 'https://example.com/dashboard';

        // リダイレクト実行
        window.location.href = targetUrl;
      } else {
        alert('ユーザ名またはパスワードが間違っています。');
      }
    });
  </script>
</body>
</html>

上記のサンプルでは、ログインボタンがクリックされたときにリダイレクト処理が実行されます。

指定されたユーザ名とパスワードが正しい場合、指定したURLにリダイレクトされます。

●注意点と対処法

リダイレクトを実装する際には、次の注意点に留意してください。

○リダイレクトループ

無限にリダイレクトが繰り返される状態を避けるため、条件分岐やリダイレクト先のページ設定に注意してください。

○ブラウザのバックボタン

window.location でリダイレクトした場合、ブラウザのバックボタンで元のページに戻れることがあります。

これを防ぐには、location.replace() を使用してください。

●カスタマイズ方法

○サンプルコード5:リダイレクト先のURLを動的に変更する

リダイレクト先のURLを動的に変更することもできます。

下記のコードは、選択されたオプションに応じてリダイレクト先を変更する例です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプル5: リダイレクト先のURLを動的に変更する</title>
</head>
<body>
  <select id="category">
    <option value="">カテゴリを選択</option>
    <option value="tech">テクノロジー</option>
    <option value="sports">スポーツ</option>
    <option value="travel">旅行</option>
  </select>
  <button id="goBtn">移動</button>

  <script>
    // 移動ボタンを取得
    const goBtn = document.getElementById('goBtn');

    // 移動ボタンがクリックされたらリダイレクト処理を実行
    goBtn.addEventListener('click', function() {
      const category = document.getElementById('category').value;

      if (category) {
        // リダイレクト先のURLを動的に生成
        const targetUrl = `https://example.com/${category}`;

        // リダイレクト実行
        window.location.href = targetUrl;
      } else {
        alert('カテゴリを選択してください。');
      }
    });
  </script>
</body>
</html>

上記のサンプルでは、選択されたカテゴリに基づいてリダイレクト先のURLが動的に生成されます。

移動ボタンをクリックすると、指定したURLにリダイレクトされます。

○サンプルコード6:リダイレクト前にアクションを実行する

リダイレクト前に何らかのアクションを実行したい場合は、下記のようなコードを使用できます。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>サンプル6: リダイレクト前にアクションを実行する</title>
</head>
<body>
  <button id="logoutBtn">ログアウト</button>

  <script>
    // ログアウトボタンを取得
    const logoutBtn = document.getElementById('logoutBtn');

    // ログアウトボタンがクリックされたらログアウト処理を実行
    logoutBtn.addEventListener('click', function() {
      // ログアウト処理(例:セッション削除など)
      console.log('ログアウト処理を実行');

      // リダイレクト先のURLを指定
      const targetUrl = 'https://example.com/login';

      // リダイレクト実行
      window.location.href = targetUrl;
    });
  </script>
</body>
</html>

上記のサンプルでは、ログアウトボタンがクリックされると、ログアウト処理が実行された後にリダイレクトが行われます。

実際のログアウト処理(例:セッション削除)は、このコードのconsole.log('ログアウト処理を実行');部分に実装することができます。

まとめ

この記事では、JavaScriptを使用したリダイレクト方法についていくつかのサンプルコードを紹介しました。

これらのサンプルコードを参考に、自分のプロジェクトに適したリダイレクト処理を実装することができます。

また、リダイレクト先のURLを動的に変更する方法や、リダイレクト前に特定のアクションを実行する方法なども紹介しました。

これらの応用例を活用することで、より柔軟なリダイレクト処理を実現できます。

ただし、リダイレクト処理には注意点もあるため、適切な方法で実装することが重要です。