Web/API/History

From Get docs


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 returns 1.
scrollRestoration
Allows web applications to explicitly set default scroll restoration behavior on history navigation. This property can be either auto or manual.
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.

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 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, 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

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
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

Notes'

Full support 4

Notes'

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

Notes'

Full support 4

Notes'

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

Notes'

Full support 4

Notes'

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

Notes'

Full support 4

Notes'

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.