coderef

HistoryBaseline · Widely available

The window.history API manipulates the browser session history, from navigations to state management, in the tab or frame that the current page is loaded in.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Jul 29, 2015. Widely available since Jan 29, 2018.

Browser support

DesktopChrome
1–4Not supported
5+Supportedsince May 25, 2010
Current: 155
Edge
12+Supportedsince Jul 29, 2015
Current: 154
Firefox
1–3.6Not supported
4+Supportedsince Mar 22, 2011
Current: 157
Safari
1–4Not supported
5+Supportedsince Jun 7, 2010
Current: 27
MobileChrome Android
18+Supportedsince Jun 27, 2012
Current: 155
Firefox Android
4+Supportedsince Mar 29, 2011
Current: 157
Safari iOS
1–3.2Not supported
4+Supportedsince Jun 21, 2010
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: History.

Feature detection

JS · check before using
if ("History" in globalThis) {
  // History is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (15). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
History112111841
History.back112111841
History.forward112111841
History.go112111841
History.length112111841
History.pushState512451844
History.replaceState512451844
History.scrollRestoration46794611464611
History.state1912462546
PopStateEvent412461846
PopStateEvent.PopStateEvent161411618146
PopStateEvent.hasUAVisualTransition1181181491811814918
PopStateEvent.state412461846
Window.history112111841
Window.popstate_event512451844.2