NavigationHistoryEntry
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The NavigationHistoryEntry
interface of the Navigation API represents a single navigation history entry.
These objects are commonly accessed via the Navigation.currentEntry
property and Navigation.entries()
method.
The Navigation API only exposes history entries created in the current browsing context that have the same origin as the current page (e.g. not navigations inside embedded <iframe>
s, or cross-origin navigations), providing an accurate list of all previous history entries just for your app. This makes traversing the history a much less fragile proposition than with the older History API.
Instance properties
Inherits properties from its parent, EventTarget
.
id
Read only Experimental-
Returns the
id
of the history entry. This is a unique, UA-generated value that always represents a specific history entry, useful to correlate it with an external resource such as a storage cache. index
Read only Experimental-
Returns the index of the history entry in the history entries list (that is, the list returned by
Navigation.entries()
), or-1
if the entry does not appear in the list. key
Read only Experimental-
Returns the
key
of the history entry. This is a unique, UA-generated value that represents the history entry's slot in the entries list rather than the entry itself. It is used to navigate that particular slot viaNavigation.traverseTo()
. Thekey
will be reused by other entries that replace the entry in the list (that is, if theNavigateEvent.navigationType
isreplace
). sameDocument
Read only Experimental-
Returns
true
if this history entry is for the samedocument
as the currentDocument
value, orfalse
otherwise. url
Read only Experimental-
Returns the absolute URL of this history entry. If the entry corresponds to a different document than the current one (like
sameDocument
property isfalse
), and that document was fetched with areferrer policy
header set tono-referrer
ororigin
, the property returnsnull
.
Instance methods
Inherits methods from its parent, EventTarget
.
getState()
Experimental-
Returns a clone of the available state associated with this history entry.
Events
dispose
Experimental-
Fires when the entry is no longer part of the history entry list.
Examples
function initHomeBtn() {
// Get the key of the first loaded entry
// so the user can always go back to this view.
const { key } = navigation.currentEntry;
backToHomeButton.onclick = () => {
navigation.traverseTo(key);
};
}
// Intercept navigate events, such as link clicks, and
// replace them with single-page navigations
navigation.addEventListener("navigate", (event) => {
event.intercept({
async handler() {
// Navigate to a different view,
// but the "home" button will always work.
},
});
});
Specifications
Specification |
---|
HTML Standard # the-navigationhistoryentry-interface |
Browser compatibility
BCD tables only load in the browser