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,