The hashchange event fires when a window's hash changes (see location.hash
).
window.onhashchange = funcRef;
or
<body onhashchange="funcRef();">
to overwrite any existing Event-Handlers.
In order to add an event-listener to an existing set of event-handlers use the function "addEventListener"
window.addEventListener("hashchange", funcRef, false);
funcRef
if ("onhashchange" in window) { //no alert console.log("The browser supports the hashchange event!"); } function locationHashChanged() { if (location.hash === "#somecoolfeature") { somecoolfeature(); } } window.onhashchange = locationHashChanged; // example // Using the location.hash property to change the anchor part function changeHash() { location.hash = (Math.random() > 0.5) ? "666" : "777"; } // Alert some text if there has been changes to the anchor part function HashHandler() { console.log("The Hash has changed!"); } window.addEventListener("hashchange", HashHandler, false);
The dispatched hashchange
event has the following fields:
Field | Type | Description |
---|---|---|
newURL | DOMString | The new URL to which the window is navigating. |
oldURL | DOMString | The previous URL from which the window was navigated. |
//let this snippet run before your hashchange event binding code if(!window.HashChangeEvent)(function(){ var lastURL=document.URL; window.addEventListener("hashchange",function(event){ Object.defineProperty(event,"oldURL",{enumerable:true,configurable:true,value:lastURL}); Object.defineProperty(event,"newURL",{enumerable:true,configurable:true,value:document.URL}); lastURL=document.URL; }); }());
Specification | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'onhashchange' in that specification. | Living Standard | |
HTML 5.1 The definition of 'GlobalEventHandlers' in that specification. | Recommendation | |
HTML5 The definition of 'GlobalEventHandlers' in that specification. | Recommendation |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 5 | Yes | 3.6 | 8 | 10 | 5 |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes | Yes | Yes | 4 | 11 | 5 | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange