The hashchange
event is fired when the fragment identifier of the URL has changed (the part of the URL that follows the # symbol, including the # symbol).
Bubbles | Yes |
Cancelable | No |
Target objects | Window |
Interface | HashChangeEvent |
Default action | None |
Property | Type | Description |
---|---|---|
target Read only
| EventTarget | The browsing context (window ). |
type Read only
| DOMString | The type of event. |
bubbles Read only
| Boolean | Whether the event normally bubbles or not. |
cancelable Read only
| Boolean | Whether the event is cancellable or not. |
oldURL Read only
| String | The previous URL from which the window was navigated. |
newURL Read only | String |
There are several fallback scripts listed on this page. Basically those scripts check the location.hash
at a regular interval. Here is a version that allows only one handler to be bound to the window.onhashchange
property:
;(function(window) { // exit if the browser implements that event if ("onhashchange" in window) { return; } var location = window.location, oldURL = location.href, oldHash = location.hash; // check the location hash on a 100ms interval setInterval(function() { var newURL = location.href, newHash = location.hash; // if the hash has changed and a handler has been bound... if (newHash != oldHash && typeof window.onhashchange === "function") { // execute the handler window.onhashchange({ type: "hashchange", oldURL: oldURL, newURL: newURL }); oldURL = newURL; oldHash = newHash; } }, 100); })(window);
Specification | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'hashchange' in that specification. | Living Standard | Initial definition |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 5.0 | (Yes) | 3.6 (1.9.2)[1] | 8.0[2] | 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 |
[1] Support for the oldURL
/newURL
attributes added in Firefox 6.
[2] oldURL
/newURL
attributes are not supported.
© 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/Events/hashchange