History

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

History 介面是 History API 的一部分,允許操作瀏覽器的會話歷史,即當前頁面所在的標籤頁或框架中訪問過的頁面。

全域性物件 history 提供了唯一的 history 例項(它是一個單例)。

注意: 此介面僅在主執行緒(Window)上可用。在 WorkerWorklet 上下文中無法訪問。

例項屬性

History 介面不繼承任何屬性。

length 只讀

返回一個 Integer,表示會話歷史中的元素數量,包括當前載入的頁面。例如,在新標籤頁中載入的頁面,此屬性返回 1

scrollRestoration

允許 Web 應用程式在歷史導航時顯式設定預設的滾動恢復行為。此屬性可以是 automanual

state 只讀

返回一個 any 值,表示歷史棧頂部的狀態。這是一種在不等待 popstate 事件的情況下檢視狀態的方式。

例項方法

History 介面不繼承任何方法。

back()

此非同步方法會轉到會話歷史中的上一頁,與使用者點選瀏覽器 後退 按鈕的操作相同。等同於 history.go(-1)

嘗試在會話歷史的第一頁之前呼叫此方法來後退,將不起作用,也不會引發異常。

forward()

此非同步方法會轉到會話歷史中的下一頁,與使用者點選瀏覽器 前進 按鈕的操作相同;等同於 history.go(1)

嘗試在會話歷史的最新頁之後呼叫此方法來前進,將不起作用,也不會引發異常。

go()

非同步載入會話歷史中的一頁,透過其相對於當前頁面的相對位置標識,例如 -1 表示上一頁,1 表示下一頁。如果指定了一個超出邊界的值(例如,在會話歷史中沒有先前訪問過的頁面時指定 -1),則此方法將靜默地不起作用。不帶引數或值為 0 呼叫 go() 會重新載入當前頁面。

pushState()

將給定的資料推送到會話歷史棧中,並指定標題(如果提供,則指定 URL)。DOM 將資料視為不透明;您可以指定任何可序列化的 JavaScript 物件。請注意,除 Safari 外,所有瀏覽器目前都會忽略標題引數。有關更多資訊,請參閱 使用 History API

replaceState()

使用指定的資料、標題(如果提供,則指定 URL)更新歷史棧中的最新條目。DOM 將資料視為不透明;您可以指定任何可序列化的 JavaScript 物件。請注意,除 Safari 外,所有瀏覽器目前都會忽略標題引數。有關更多資訊,請參閱 使用 History API

規範

規範
HTML
# the-history-interface

瀏覽器相容性

另見