ページをリロードせずに JavaScript で URL を変更する方法

Pejiworirodosezuni Javascript De Url Wo Bian Gengsuru Fang Fa



ページをリロードせずに URL を変更することは、JavaScript を使用してより刺激的で動的な Web サイトを作成するための非常に役立つ戦略になる可能性があります。たとえば、ユーザーが新しいページに移動したりリダイレクトしたりせずに Web サイトのさまざまな部分/セクションと対話する単一ページの Web サイトを作成することは、ページをリロードせずに URL を変更する一般的な使用例の 1 つです。これにより、一貫性と応答性の高いユーザー エクスペリエンスを実現できます。

この記事では、JavaScript を使用して Web ページをリロードせずに URL を変更する方法について説明します。

ページをリロードせずに JavaScript で URL を変更/変更する方法は?

Web ページをリロードせずに URL を変更するには、次の JavaScript 定義済みメソッドを使用します。







方法 1: 「pushState()」メソッドを使用して、ページをリロードせずに JavaScript で URL を変更する

Web ページをリロードせずに URL を変更するには、「 pushState() ' 方法。これは、「 履歴オブジェクト ページをナビゲートしたり更新したりせずにブラウザの履歴を変更できるようにします。履歴スタックを追加または変更するだけで、新しいページはロードしません。このアプローチを使用すると、ブラウザの履歴スタックに新しいエントリを追加することで、ページを前後に切り替えることができます。



構文
「pushState()」メソッドの指定された構文に従います。



窓。 歴史 . プッシュ状態 ( タイトル URL ) ;

ここ:





  • 」は、新しい履歴エントリを表します。
  • タイトル 」は、ブラウザのタイトル バーに表示される特定のテキストです。
  • URL 」は、新しいエントリとして置き換えられた URL を示します。


HTML ファイルで、「」を呼び出す 4 つのボタンを作成します。 変更 URL() ボタンクリック時の機能:

< ボタンオンクリック = 'modifyUrl('HTML チュートリアル', 'HTMLTutorial.html');' > 1 ボタン >
< ボタンオンクリック = 'modifyUrl('CSS チュートリアル', 'CSSTutorial.html');' > 2 ボタン >
< ボタンオンクリック = 'modifyUrl('JavaScript チュートリアル', 'JavaScriptTutorial.html');' > 3 ボタン >
< ボタンオンクリック = 'modifyUrl('Java チュートリアル', 'JavaTutorial.html');' > 4 ボタン >

関数を定義する」 変更 URL() 」を、ボタンのクリックでトリガーされる JavaScript ファイルに記述します。 2 つのパラメータを取ります。 タイトル ' そしてその ' URL 」。ボタンのクリックでメソッドが呼び出されると、「タイトル」と「url」が引数として渡されます。 「」の種類を確認する プッシュ状態 ” ではない場合、履歴オブジェクトの ' 未定義 」。次に、「 history.pushState() 」 URL を変更するメソッド:



関数 変更 URL ( タイトル URL ) {
もしも ( タイプ ( 歴史。 プッシュ状態 ) != '未定義' ) {
だった オブジェクト = {
タイトル : タイトル
URL : URL
} ;
歴史。 プッシュ状態 ( オブジェクト オブジェクト。 タイトル オブジェクト。 URL ) ;
}
}

ボタンをクリックするたびに、ページをリロードせずに URL が正常に変更されることがわかります。

上記の出力では、左上の戻る矢印ボタン ( <- ) ボタンをクリックしているときに有効になっている場合、「 pushState() 」メソッドは、履歴スタックに新しい URL を追加します。

方法 2: 「replaceState()」メソッドを使用して、ページをリロードせずに JavaScript で URL を変更する

使用 ' replaceState() 」 Web ページをリロードせずに URL を変更するメソッド。 「」の特徴でもあります。 履歴オブジェクト 」ですが、履歴スタックに新しいエントリは追加されません。ブラウザの履歴の既存の状態を変更し、新しい状態に置き換えます。このアプローチを使用すると、ページ間を前後に切り替えることができなくなります。

構文
指定された構文は、「replaceState()」メソッドに使用されます。

窓。 歴史 . replaceState ( タイトル URL ) ;


定義された関数で、「 replaceState() ページをリロードしたりナビゲートしたりせずに、ボタンのクリック時に URL を置き換える ” メソッド:

関数 変更 URL ( タイトル URL ) {
もしも ( タイプ ( 歴史。 replaceState ) != '未定義' ) {
だった オブジェクト = {
タイトル : タイトル
URL : URL
} ;
歴史。 replaceState ( オブジェクト オブジェクト。 タイトル オブジェクト。 URL ) ;
}
}

出力は、ボタンをクリックするたびに URL が変更され、戻る矢印ボタンが無効になっているため、戻るために移動するオプションがないことを示しています。

JavaScript でページをリロードせずに、URL の変更に関連するすべての重要な情報を提供しました。

結論

Web ページを更新せずに URL を変更するには、「 pushState() 」メソッドまたは「 replaceState() ' 方法。 「pushState()」メソッドは、新しい URL を新しいエントリとして履歴スタックに追加し、ユーザーが前後に移動できるようにします。一方、「replaceState()」メソッドは URL を置き換え、バック ページへの移動を許可しません。この記事では、JavaScript を使用して Web ページをリロードせずに URL を変更する方法について説明しました。