History

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

We'd love to hear more about your role and the company you work for
Please help us by answering a few questions.

History インターフェイスで、ブラウザーのセッション履歴、つまり現在のページが読み込まれたタブまたはフレームで訪問したページを操作することができます。

history のインスタンスは 1 つしかなく(シングルトンです)、グローバルオブジェクト history を通してアクセスできます。

メモ: このインターフェイスはメインスレッド (Window) でのみ利用できます。 Worker または Worklet コンテキストではアクセスできません。

インスタンスプロパティ

History インターフェイスは何もプロパティを継承していません。

length 読取専用

現在読み込まれているページを含むセッション履歴の要素数を表す Integer を返します。たとえば、新しいタブで読み込まれたページのこのプロパティは 1 を返します。

scrollRestoration

ウェブアプリケーションが履歴の操作で既定のスクロール位置の復元を明示的に設定できるようにします。このプロパティは auto または manual を指定することができます。

state 読取専用

履歴スタックの最上位にある状態を表す any の値を返します。これは popstate イベントを待たずに状態を確認する方法です。

インスタンスメソッド

History インターフェイスは何もメソッドを継承していません。

back()

これは非同期メソッドであり、ユーザーがブラウザーの戻るボタンをクリックしたときと同じく、セッション履歴の一つ前のページへ移動します。 history.go(-1) と同等です。

このメソッドを呼び出して、セッション履歴の最初のページを超えて戻っても何の効果もなく、例外が発生することもありません。

forward()

これは非同期メソッドであり、ユーザーがブラウザーの次へボタンをクリックしたときと同じく、セッション履歴の一つ次のページへ移動します。これは history.go(1) と同等です。

このメソッドを呼び出して、セッション履歴の直近のページを超えて進んでも何の効果もなく、例外が発生することもありません。

go()

セッション履歴上で、現在のページからの相対位置で識別されるページを非同期に読み出します。たとえば、 -1 は前のページで 1 は次のページです。範囲外の値を指定した場合 (例えば、セッション履歴に以前訪問したページがないときに -1 を指定した場合)、このメソッドは暗黙に何もしません。 go() を引数なし、または 0 の値で呼び出すと、現在のページを再読み込みします。

pushState()

指定されたデータを指定されたタイトル(および、指定されていれば URL)でセッション履歴に追加します。このデータは DOM においては透過的でないものとして扱われます。シリアライズ可能な JavaScript を指定することができます。詳しくは、履歴 API での作業を参照してください。

replaceState()

履歴スタックの最新の項目が、指定したデータ、タイトル、指定されていれば URL になるよう更新します。データは DOM では透過的でないものとして扱われます。シリアライズ可能な JavaScript を指定することができます。なお、 Safari 以外のすべてのブラウザーが今のところ title 引数を無視することに注意してください。詳しくは、 履歴 API での作業を参照してください。

仕様書

Specification
HTML
# the-history-interface

ブラウザーの互換性

関連情報

  • history グローバルオブジェクト