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.

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 Standard
# the-history-interface

ブラウザーの互換性

BCD tables only load in the browser

関連情報

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