Window:hashchange 事件

Baseline 已廣泛支援

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

當 URL 的片段識別符號(URL 中以 # 符號開頭的部分)發生變化時,會觸發 hashchange 事件。

使用 history.pushState()history.replaceState() 修改雜湊值時,不會觸發此事件。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("hashchange", (event) => { })

onhashchange = (event) => { }

事件型別

一個 HashChangeEvent。繼承自 Event

Event HashChangeEvent

事件屬性

HashChangeEvent.newURL 只讀

一個字串,表示視窗正在導航到的新 URL。

HashChangeEvent.oldURL 只讀

一個字串,表示視窗從中導航到的前一個 URL。

事件處理程式別名

除了 Window 介面之外,以下目標也可用事件處理屬性 onhashchange

示例

您可以在 addEventListener 方法中使用 hashchange 事件

js
window.addEventListener("hashchange", () => {
  console.log("The hash has changed!");
});

或者使用 onhashchange 事件處理屬性

js
function locationHashChanged() {
  if (location.hash === "#cool-feature") {
    console.log("You're visiting a cool feature!");
  }
}

window.onhashchange = locationHashChanged;

規範

規範
HTML
# event-hashchange
HTML
# handler-window-onhashchange

瀏覽器相容性

另見