The hashchange event fires when a window's hash changes (see location.hash).
Syntax
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);
Parameters
funcRef- A reference to a function.
Example
if ("onhashchange" in window) {
alert("The browser supports the hashchange event!");
}
function locationHashChanged() {
if (location.hash === "#somecoolfeature") {
somecoolfeature();
}
}
window.onhashchange = locationHashChanged;
The hashchange event
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. |
Workaround for event.newURL and event.oldURL
//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;
});
}());
Specifications
| Specification | Status | Comment |
|---|---|---|
| WHATWG HTML Living Standard The definition of 'GlobalEventHandlers' in that specification. |
Living Standard | |
| HTML5.1 The definition of 'GlobalEventHandlers' in that specification. |
Recommendation | |
| HTML5 The definition of 'GlobalEventHandlers' in that specification. |
Recommendation |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | 5.0 | (Yes) | 3.6 (1.9.2) |
8.0
|
10.6 | 5.0 |
| Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | 2.2 | (Yes) | 1.0 (1.9.2) | 9.0 | 11.0 | 5.0 |
Document Tags and Contributors
Tags:
Contributors to this page:
tobias74,
erikadoyle,
fuweichin,
teoli,
Taken,
libreGeekingKid,
leon_gilyadov,
Sheppy,
ethertank,
ziyunfei,
McGurk,
Jürgen Jeka,
Crash,
Nickolay,
jlebar,
Sephr
Last updated by:
tobias74,