History

The History interface allows to manipulate the browser session history, that is the pages visited in the tab or frame that the current page is loaded in.

Properties

The History interface doesn't inherit any property.

History.length Read only
Returns an Integer representing the number of elements in the session history, including the currently loaded page. For example, for a page loaded in a new tab this property returns 1.
History.current Read only Obsolete since Gecko 26
Returns a DOMString representing the URL of the active item of the session history. This property was never available to web content and is no more supported by any browser. Use Location.href instead.
History.next Read only Obsolete since Gecko 26
Returns a DOMString representing the URL of the next item in the session history. This property was never available to web content and is not supported by other browsers.
History.previous Read only Obsolete since Gecko 26
Returns a DOMString representing the URL of the previous item in the session history. This property was never available to web content and is not supported by other browsers.
History.scrollRestoration 
Allows web applications to explicitly set default scroll restoration behavior on history navigation. This property can be either auto or manual.
History.state Read only
Returns an any value representing the state at the top of the history stack. This is a way to look at the state without having to wait for a popstate event.

Methods

The History interface doesn't inherit any methods.

History.back()
Goes to the previous page in session history, the same action as when the user clicks the browser's Back button. Equivalent to history.go(-1).
Calling this method to go back beyond the first page in the session history has no effect and doesn't raise an exception.
History.forward()
Goes to the next page in session history, the same action as when the user clicks the browser's Forward button; this is equivalent to history.go(1).
Calling this method to go forward beyond the most recent page in the session history has no effect and doesn't raise an exception.
History.go()
Loads a page from the session history, identified by its relative location to the current page, for example -1 for the previous page or 1  for the next page. If you specify an out-of-bounds value (for instance, specifying -1 when there are no previously-visited pages in the session history), this method silently has no effect. Calling go() without parameters or a value of 0 reloads the current page.
Internet Explorer lets you specify a string to go to a specific page in the history list; you should avoid this feature because it is non-standard.
History.pushState()
Pushes the given data onto the session history stack with the specified title and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized.  Note that Firefox currently ignores the title parameter; for more information, see manipulating the browser history.
History.replaceState()
Updates the most recent entry on the history stack to have the specified data, title, and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized.  Note that Firefox currently ignores the title parameter; for more information, see manipulating the browser history.

Specifications

Specification Status Comment
WHATWG HTML Living Standard
The definition of 'History' in that specification.
Living Standard Adds the scrollRestoration attribute.
HTML5
The definition of 'History' in that specification.
Recommendation Initial definition.
Custom Scroll Restoration - History-based API
The definition of 'History' in that specification.
Editor's Draft Adds the scrollRestoration attribute.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
pushState and replaceState 5.0 4.0 [1] 10 11.5 5
scrollRestoration 46.0 46.0 (46.0) Not supported 33 Not supported
Feature Android Android Webview Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)
pushState and replaceState 2.2 (Yes) (Yes) 10 (Yes) 4.3 (Yes)
scrollRestoration Not supported 46.0 (Yes) Not supported (Yes) Not supported 46.0

[1] In Firefox 2 through 5, the passed object is serialized using JSON. Starting in Firefox 6, the object is serialized using the structured clone algorithm. This allows a wider variety of objects to be safely passed.

See also

  • The Window.history property returning the history of the current session.

License

© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/api/history

API History API HTML-DOM