About this specification

This specification is like no other — it has been processed with you, the humble web developer, in mind.

The focus of this specification is readability and ease of access. Unlike the full HTML Standard, this "developer's edition" removes information that only browser vendors need know. It is automatically produced from the full specification by our build tooling, and thus always in sync with the latest developments in HTML.

To read about its conception, construction, and future, read the original press release, and the blog post about its relaunch.

Finally, feel free to contribute on GitHub to make this edition better for everyone!

    1. 7.6 Browsing the Web
      1. 7.6.1 History traversal
        1. 7.6.1.1 Persisted user state restoration
        2. 7.6.1.2 The PopStateEvent interface
        3. 7.6.1.3 The HashChangeEvent interface
        4. 7.6.1.4 The PageTransitionEvent interface
      2. 7.6.2 Unloading documents
        1. 7.6.2.1 The BeforeUnloadEvent interface

7.6 Browsing the Web

7.6.1 History traversal

7.6.1.1 Persisted user state restoration

This can even include updating the dir attribute of textarea elements or input elements whose type attribute is in either the Text state or the Search state, if the persisted state includes the directionality of user input in such controls.

Not restoring the scroll position by user agent does not imply that the scroll position will be left at any particular value (e.g., (0,0)). The actual scroll position depends on the navigation type and the user agent's particular caching strategy. So web applications cannot assume any particular scroll position but rather are urged to set it to what they want it to be.

7.6.1.2 The PopStateEvent interface
event . state

Returns a copy of the information that was provided to pushState() or replaceState().

7.6.1.3 The HashChangeEvent interface
event . oldURL

Returns the URL of the session history entry that was previously current.

event . newURL

Returns the URL of the session history entry that is now current.

7.6.1.4 The PageTransitionEvent interface
event . persisted

For the pageshow event, returns false if the page is newly being loaded (and the load event will fire). Otherwise, returns true.

For the pagehide event, returns false if the page is going away for the last time. Otherwise, returns true, meaning that (if nothing conspires to make the page unsalvageable) the page might be reused if the user navigates back to this page.

Things that can cause the page to be unsalvageable include:

7.6.2 Unloading documents

7.6.2.1 The BeforeUnloadEvent interface

There are no BeforeUnloadEvent-specific initialization methods.

The BeforeUnloadEvent interface is a legacy interface which allows prompting to unload to be controlled not only by canceling the event, but by setting the returnValue attribute to a value besides the empty string. Authors should use the preventDefault() method, or other means of canceling events, instead of using returnValue.