The History
interface allows manipulation of 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 returns1
. 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. UseLocation.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
ormanual
. 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 apopstate
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 also specify a string to go to a specific page in the history list. 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 |
---|---|---|
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 | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
pushState and replaceState |
5.0 | (Yes) | 4.0 [1] | 10 | 11.5 | 5 |
scrollRestoration |
46.0 | No support | 46.0 (46.0) | No support | 33 | (Yes)[2] |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
pushState and replaceState |
2.2 | (Yes) | (Yes) | (Yes) | 10 | (Yes) | 4.3 | (Yes) |
scrollRestoration |
No support | 46.0 | No support | (Yes) | No support | (Yes) | (Yes)[2] | 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.
[2] WebKit bug 147782
See also
- The
Window.history
property returning the history of the current session.
Document Tags and Contributors
Tags:
Contributors to this page:
abehan,
Siphalor,
yisibl,
arronei,
erikadoyle,
Sheppy,
shvaikalesh,
jpmedley,
Jeremie,
fscholz,
codelahoma,
teoli
Last updated by:
abehan,