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);
funcRefif ("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