Collapse the table of content
Expand the table of content

onhashchange event

Raised when there are changes to the portion of a URL that follows the number sign (#).

This event is not supported for Windows Store apps using JavaScript.

Internet Explorer 8



HTML Attribute <element onhashchange = "handler(event)">
Event Property object.onhashchange = handler;
attachEvent Method object.attachEvent("onhashchange", handler)
addEventListener Method object.addEventListener("hashchange", handler, useCapture)


Event information



Event handler parameters

pEvtObj [in]

Type: IHTMLEventObj

Standards information

There are no standards that apply here.


In Asynchronous JavaScript and XML (AJAX) applications, client requests that do not trigger traditional page navigation should update the IHTMLAnchorElement::hash property. This lets the Back button function more predictably. The URL fragment (bookmark) can be set by script. The value is appended to the displayed URL, and the navigation is saved in the browser history.

Windows Internet Explorer 8. The browser's Back and Forward buttons do not generate HTMLWindowEvents3::onhashchange events for frames or iframes; instead, the frame is refreshed each time. Web pages hosted in frames or iframes should use their HTMLFrameSiteEvents::onload handler or equivalent to read the current URL hash information from the location.IHTMLAnchorElement::hash property and set their states accordingly.

When first navigating to a page that contains a hash identifier in the URL, an HTMLWindowEvents3::onhashchange event is not fired. It is expected that the freshly loaded page can inspect the value of the location.IHTMLAnchorElement::hash property to extract the current hash value. After this first page loads, setting the IHTMLAnchorElement::hash property will fire the HTMLWindowEvents3::onhashchange event as expected. This behavior avoids any negative impact on Web page load performance by removing a possible redundant event.

To invoke this event, do one of the following:

The pEvtObj parameter is required for the following interfaces:

See also

Introducing AJAX Navigations



Community Additions

© 2015 Microsoft