historyはJavaScriptからブラウザのURL履歴を取得できるAPIです。この記事では、historyの使い方をご紹介します。
historyオブジェクトはwindowオブジェクトの一部であり、window.historyプロパティを通じてアクセスできる。
履歴リスト内のURL数
<p id="l"></p>
<script>
document.querySelector("#l").innerHTML = history.length;
</script>
アクティブなセッションヒストリーエントリーのスクロールリストアモード
<p id="sr"></p>
<script>
document.querySelector("#sr").innerHTML = history.scrollRestoration;
</script>
アクティブなセッション履歴エントリーの状態
<p id="s"></p>
<script>
document.querySelector("#s").innerHTML = history.state;
</script>
history.go(n)
指定した数だけ画面を進めます。たとえば、1を指定した場合は1つ進みます。-2 を指定した場合は2つ戻ります。
<a href="javascript:history.go(-1)">戻る</a>
ブラウザの「戻る」ボタンをクリックしたのと同じ動作をします。
history.back()
<a href="javascript:history.back()">戻る</a>
<button onclick="history.back()">戻る</button>
history.forward()
ブラウザの「進む」ボタンをクリックしたのと同じ動作をします。
<a href="javascript:history.forward()">進む</a>
セッション履歴に新しいエントリーを追加する。
history.pushState(data, "")
history.pushState(data, "", url)
アクティブなセッション履歴エントリーのシリアライズされた状態を、構造化されたデータのクローンに更新する。
history.replaceState(data, "")
history.replaceState(data, "", url)
Web Hypertext Application Technology Working Group (2023) APIs related to navigation and session history HTML Living Standard