このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Window: hashchange イベント

Baseline Widely available

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

hashchange イベントは、 URL のフラグメント識別子 (URL の # 記号で始まり続く部分) が変化したときに発生します。

このイベントは、ハッシュが history.pushState()history.replaceState() を使用して変更された場合は発生しません。

構文

このイベント名を addEventListener() のようなメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

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

onhashchange = (event) => { }

イベント型

HashChangeEvent です。 Event を継承しています。

Event PageTransitionEvent

イベントプロパティ

HashChangeEvent.newURL 読取専用

ウィンドウのナビゲーション先となる新しい URL を表す文字列です。

HashChangeEvent.oldURL 読取専用

ウィンドウのナビゲーション元である前回の URL を表す文字列です。

イベントハンドラーの別名

Window インターフェイスに加え、イベントハンドラープロパティ onhashchange は、以下のターゲットでも利用可能です。

hashchange イベントは addEventListener メソッドの中で使用することができます。

js
window.addEventListener("hashchange", () => {
  console.log("ハッシュが変更されました。");
});

または onhashchange イベントハンドラープロパティを使用して、

js
function locationHashChanged() {
  if (location.hash === "#cool-feature") {
    console.log("cool feature にアクセスしました。");
  }
}

window.onhashchange = locationHashChanged;

仕様書

Specification
HTML
# event-hashchange
HTML
# handler-window-onhashchange

ブラウザーの互換性

関連情報