hashchange

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.

L'événement hashchange est déclenché lorsque l'identificateur de fragment de l'URL a changé (la partie de l'URL qui suit le symbole #, y compris le symbole # lui-même).

Bulles Oui
Annulable Non
Objets cibles Window
Interface HashChangeEvent
Action par défaut Aucune

Propriétés

Propriété Type Description
target Lecture seule EventTarget The browsing context (window).
type Lecture seule DOMString Type de l'évènement
bubbles Lecture seule Boolean Whether the event normally bubbles or not.
cancelable Lecture seule Boolean Whether the event is cancellable or not.
oldURL Lecture seule String The previous URL from which the window was navigated.
newURL Lecture seule String

Il existe plusieurs scripts de secours listés sur cette page. Fondamentalement, ces scripts vérifient le location.hash à intervalles réguliers. Voici une version qui n'autorise qu'un seul gestionnaire à être lié à la propriété window.onhashchange:

js
(function (window) {
  // Sortir si le navigateur implémente cet événement
  if ("onhashchange" in window) {
    return;
  }

  var location = window.location,
    oldURL = location.href,
    oldHash = location.hash;

  // Vérifie la hash de la barre d'adresse toutes les 100ms
  setInterval(function () {
    var newURL = location.href,
      newHash = location.hash;

    // Si le hash a été changé et qu'un gestionnaire a été lié...
    if (newHash != oldHash && typeof window.onhashchange === "function") {
      // exécute le gestionnaire
      window.onhashchange({
        type: "hashchange",
        oldURL: oldURL,
        newURL: newURL,
      });

      oldURL = newURL;
      oldHash = newHash;
    }
  }, 100);
})(window);

Spécifications

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

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
hashchange event

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Has more compatibility info.

Voir aussi