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 | 
Properties
| Property | Type | Description | 
|---|---|---|
| targetRead only | EventTarget | The browsing context (<code>window</code>). | 
| typeRead only | DOMString | The type of event. | 
| bubblesRead only | Boolean | Whether the event normally bubbles or not | 
| cancelableRead only | Boolean | Whether the event is cancellable or not? | 
| oldURLRead 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);
Specifications
| Specification | Status | Comment | 
|---|---|---|
| WHATWG HTML Living Standard The definition of 'hashchange' in that specification. | Living Standard | Initial definition | 
Browser compatibility
| 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.
See also
Document Tags and Contributors
    
    Tags: 
    
  
                    
                       Contributors to this page: 
        k-gun, 
        erikadoyle, 
        Sebastianz, 
        Tigt, 
        molsson, 
        bjb568, 
        teoli, 
        leon_gilyadov, 
        Sheppy, 
        ethertank, 
        louisremi
                    
                    
                       Last updated by:
                      k-gun,