The hashchange event is fired when the fragment identifier of the URL has changed (the part of the URL beginning with and following the # symbol).
The hashchange event is fired when the fragment identifier of the URL has changed (the part of the URL beginning with and following the # symbol).
Use the event name in methods like addEventListener(), or set an event handler property.
js
addEventListener("hashchange", (event) => {}); onhashchange = (event) => {};
A HashChangeEvent. Inherits from Event.
HashChangeEvent.newURL Read only 
A string representing the new URL the window is navigating to.
HashChangeEvent.oldURL Read only 
A string representing the previous URL from which the window was navigated.
In addition to the Window interface, the event handler property onhashchange is also available on the following targets:
You can use the hashchange event in an addEventListener method:
js
window.addEventListener( "hashchange", () => { console.log("The hash has changed!"); }, false, );
Or use the onhashchange event handler property:
js
function locationHashChanged() { if (location.hash === "#cool-feature") { console.log("You're visiting a cool feature!"); } } window.onhashchange = locationHashChanged;
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
| hashchange_event | 8 4–8A regularEventobject is fired, rather than aHashChangeEventobject. | 12 | 3.6 | 8 | 10.6 | 5 | ≤37 | 18 | 4 | 11 | 5 | 1.0 | 
popstate event
    © 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
    https://developer.mozilla.org/en-US/docs/Web/API/Window/hashchange_event