History API: Modify history entries

Join the AI Workshop to learn more about AI and how it can be applied to web development. Next cohort February 1st, 2026

The AI-first Web Development BOOTCAMP cohort starts February 24th, 2026. 10 weeks of intensive training and hands-on projects.


While pushState() lets you add a new state to the history, replaceState() allows you to edit the current history state.

history.pushState({}, '', '/posts')
const state = { post: 'first' }
history.pushState(state, '', '/post/first')
const state = { post: 'second' }
history.replaceState(state, '', '/post/second')

If you now call

history.back()

the browser goes straight to /posts, since /post/first was replaced by /post/second

Lessons in this unit:

0: Introduction
1: Navigating the history
2: Add an entry to the history
3: ▶︎ Modify history entries
4: Access the current history entry state
5: The `popstate` event
6: The `hashchange` event
7: Had an issue with bfcache - html - platform