--- title: History.replaceState() slug: Web/API/History/replaceState tags: - API - HTML DOM - History - History API - Method - Reference translation_of: Web/API/History/replaceState ---
History.replaceState() メソッドは、現在の履歴を編集し、メソッドに渡された stateObj、title、URL パラメータによって置き換えます。このメソッドは、ユーザーのアクションに応じて現在の履歴エントリの state オブジェクトや URL を更新したい場合に特に便利です。
history.replaceState(stateObj, title, [url])
stateObjtitleurl {{optional_inline}}https://www.mozilla.org/foo.html が以下の JavaScript を実行したとします:
const stateObj = { foo: 'bar' };
history.pushState(stateObj, '', 'bar.html');
上記の 2行の説明は、「History API を取り扱う」の記事の「pushState() の例」にあります。次に、https://www.mozilla.org/bar.html が以下の JavaScript を実行したとします:
history.replaceState(stateObj, '', 'bar2.html');
これにより、URL バーに https://www.mozilla.org/bar2.html が表示されるようになりますが、ブラウザーが bar2.html を読み込んだり、bar2.html が存在するかどうかを確認したりすることはありません。
ユーザーが https://www.microsoft.com に移動し、戻るボタンをクリックしたとします。この時点で、URL バーには https://www.mozilla.org/bar2.html が表示されます。ユーザーがもう一度「戻る」ボタンをクリックすると、URL バーには https://www.mozilla.org/foo.html が表示され、bar.html は完全にバイパスされます。
| 仕様書 | 策定状況 | コメント |
|---|---|---|
| {{SpecName("HTML WHATWG", "history.html#dom-history-replacestate", "History.replaceState()")}} | {{Spec2("HTML WHATWG")}} | No change from {{SpecName("HTML5 W3C")}}. |
| {{SpecName("HTML5 W3C", "history.html#dom-history-replacestate", "History.replaceState()")}} | {{Spec2("HTML5 W3C")}} | 初期定義 |
{{Compat("api.History.replaceState")}}