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.
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
. scrollRestoration
- Allows web applications to explicitly set default scroll restoration behavior on history navigation. This property can be either
auto
ormanual
. 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.
back()
- This asynchronous method 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.
forward()
- This asynchronous method 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.
go()
- Asynchronously loads a page from the session history, identified by its relative location to the current page, for example
-1
for the previous page or1
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. Callinggo()
without parameters or a value of0
reloads the current page. Internet Explorer lets you specify a string, instead of an integer, to go to a specific URL in the history list. 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 all browsers but Safari currently ignore the title parameter. For more information, see Working with the History API.
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 all browsers but Safari currently ignore the title parameter. For more information, see Working with the History API.
Specifications
Specification | Status | Comment |
---|---|---|
HTML Living StandardThe definition of 'History' in that specification. | Living Standard | Adds the scrollRestoration attribute.
|
HTML5The definition of 'History' in that specification. | Recommendation | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
History
|
Chrome
Full support 1 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 10 |
Opera
Full support 3 |
Safari
Full support 1 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 1 |
Samsung Internet Android
Full support 1.0 |
back
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support Yes |
IE
Full support 10 |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
forward
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support Yes |
IE
Full support 10 |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
go
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support Yes |
IE
Full support 10 |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
length
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support Yes |
IE
Full support 10 |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
pushState
|
Chrome
Full support 5 |
Edge
Full support 12 |
Firefox Full support 4 Full support 4 Notes' Until Firefox 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. |
IE
Full support 10 |
Opera
Full support 11.5 |
Safari
Full support 5 |
WebView Android
Full support ≤37 |
Chrome Android
Full support 18 |
Firefox Android Full support 4 Full support 4 Notes' Until Firefox 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. |
Opera Android
Full support 11.5 |
Safari iOS
Full support 4.3 |
Samsung Internet Android
Full support 1.0 |
replaceState
|
Chrome
Full support 5 |
Edge
Full support 12 |
Firefox Full support 4 Full support 4 Notes' Until Firefox 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. |
IE
Full support 10 |
Opera
Full support 11.5 |
Safari
Full support 5 |
WebView Android
Full support ≤37 |
Chrome Android
Full support 18 |
Firefox Android Full support 4 Full support 4 Notes' Until Firefox 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. |
Opera Android
Full support 11.5 |
Safari iOS
Full support 4.3 |
Samsung Internet Android
Full support 1.0 |
scrollRestoration
|
Chrome
Full support 46 |
Edge
Full support 79 |
Firefox
Full support 46 |
IE
No support No |
Opera
Full support 33 |
Safari
Full support Yes |
WebView Android
No support No |
Chrome Android
Full support 46 |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support 5.0 |
state
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support Yes |
IE
Full support 10 |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support Yes |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.'
- See implementation notes.
See also
- The
Window.history
property returning the history of the current session.
History by Mozilla Contributors is licensed under CC-BY-SA 2.5.