JavaScript で Web ページにリダイレクトする
-
JavaScript で
location.href()
を使用して Web ページをリダイレクトする -
JavaScript は
location.replace()
を使用して Web ページをリダイレクトする -
3. JavaScript で
location.assign()
を使用して Web ページをリダイレクトする - 4. JavaScript でアンカー要素を動的に作成して Web ページをリダイレクトする
- まとめ
JavaScript には、ユーザーを再ルーティングするさまざまな方法があります。これは、サイトが持つべきリダイレクト動作の種類に関するビジネス要件によって異なります。次の方法でユーザーをリダイレクトできます。
location.href()
location.replace()
location.assign()
- アンカー要素を動的に作成
JavaScript で location.href()
を使用して Web ページをリダイレクトする
リダイレクトには、location
インターフェイスを Document
および Window
オブジェクトと組み合わせて使用します。通常、window.location.href
は現在のページの URL を返します。たとえば、次のコードを実行すると、ページの URL が表示されます。
console.log(window.location.href)
出力:
"https://www.delftstack.com/"
トリックは、window.location.href
に別の URL を割り当てて、この URL を置き換えることです。これにより、ブラウザは URL で指定されたページをロードするため、リダイレクトされます。サイト履歴スタックに関しては、このメソッドは現在の参照 URL を変更します。次のコードは、DelfStack
のハウツーページに移動します。
window.location.href = 'https://www.delftstack.com/howto/';
備考:
- 新しい URL が読み込まれると、ブラウザの[戻る]ボタンから古い Web ページにアクセスできます。
- リダイレクトに最も一般的に使用される方法です
JavaScript は location.replace()
を使用して Web ページをリダイレクトする
Web ページに永続的に移動する場合は、location.replace
を使用してください。違いは、location.replace
が現在の URL を新しい URL に置き換えることです。したがって、ユーザーは前の URL に戻ることができなくなります。ブラウザの履歴スタックに関して、このメソッドは最後の Web ページの URL をポップし、その URL を値にプッシュします。
window.location.replace('https://www.delftstack.com');
これを実行すると、https://www.delftstack.com
サイトが読み込まれます。
備考:
- この方法は必要な場合にのみ使用することをお勧めします。
- この方法を使用して前のリンクに戻ることはできません。したがって、それは良いユーザーエクスペリエンスではないかもしれません。
3. JavaScript で location.assign()
を使用して Web ページをリダイレクトする
location.replace()
と同様に、assign()
メソッドには、現在のリンクがブラウザの履歴に残るという違いがあります。したがって、ユーザーはブラウザの戻るボタンを使用して前のページに戻ることができます。このメソッドは、ターゲット URL もパラメーターとして受け取ります。
window.location.assign('https://www.delftstack.com');
4. JavaScript でアンカー要素を動的に作成して Web ページをリダイレクトする
バージョン 8 以下の古いブラウザ、特に Internet Explorer では、ロケーションインターフェイスはサポートされていません。したがって、アンカータグ(<a>
)を動的に作成し、ターゲット URL で href
属性を設定します。前述のように、アンカータグは、それを呼び出すためにユーザーの操作を必要とするパッシブ要素です。そのため、リダイレクトを機能させるために、コードでクリックイベントがトリガーされます。
let targetURL = 'https://www.delftstack.com';
let newURL = document.createElement('a');
newURL.href = targetURL;
document.body.appendChild(newURL);
newURL.click();
ここでは、次の方法でリダイレクトを実現します。
- アンカータグ要素の作成
document.createElement('a');
新しい URLnewURL.href = targetURL
を使用してhref
プロパティを設定します- 動的に作成されたタグを
document.body.appendChild(newURL)
を使用して DOM ノードにアタッチします - 最後に、ユーザーのクリック
newURL.click()
をエミュレートして呼び出します。
ブラウザは新しい URL をロードします。
まとめ
ビジネス要件によっては、メタリフレッシュ方式を使用して、ユーザーがメンテナンス中のサイトの Web ページにアクセスしたらすぐにリダイレクトすることをお勧めします。ナビゲーションがユーザーのクリックに基づいて意図されている場合、アンカータグの使用は非常に一般的です。JavaScript の Location インターフェイスのメソッドである window.location.href
および window.location.assign()
を使用して、プログラムでユーザーを新しい URL に送信できます。