Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The NavigateEvent()
constructor creates a new NavigateEvent
object instance.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The NavigateEvent()
constructor creates a new NavigateEvent
object instance.
js
new NavigateEvent(type, init)
type
A string representing the type of event. In the case of NavigateEvent
this is always navigate
.
init
An object containing the following properties:
canIntercept
Optional
A boolean defining whether the navigation can be intercepted or not (e.g. you can't intercept a cross-origin navigation). Defaults to false
.
destination
A NavigationDestination
object representing the location being navigated to.
downloadRequest
Optional
The filename of the file requested for download, in the case of a download navigation (e.g. an <a>
or <area>
element with a download
attribute). Defaults to null
.
formData
Optional
The FormData
object representing the submitted data in the case of a POST
form submission. Defaults to null
.
hashChange
Optional
A boolean defining if the navigation is a fragment navigation (i.e. to a fragment identifier in the same document). Defaults to false
.
info
Optional
The info
data value passed by the initiating navigation operation (e.g. Navigation.back()
, or Navigation.navigate()
).
The type of the navigation. Possible values — push
, reload
, replace
, and traverse
. Defaults to push
.
signal
An AbortSignal
, which will become aborted if the navigation is cancelled (e.g. by the user pressing the browser's "Stop" button, or another navigation starting and thus cancelling the ongoing one).
userInitiated
Optional
A boolean defining whether the navigation was initiated by the user (e.g. by clicking a link, submitting a form, or pressing the browser's "Back"/"Forward" buttons). Defaults to false
.
A developer would not use this constructor manually. A new NavigateEvent
object is constructed when a handler is invoked as a result of the navigate
event firing.
js
navigation.addEventListener("navigate", (event) => {
// Exit early if this navigation shouldn't be intercepted,
// e.g. if the navigation is cross-origin, or a download request
if (shouldNotIntercept(event)) {
return;
}
const url = new URL(event.destination.url);
if (url.pathname.startsWith("/articles/")) {
event.intercept({
async handler() {
// The URL has already changed, so show a placeholder while
//fetching the new content, such as a spinner or loading page
renderArticlePagePlaceholder();
// Fetch the new content and display when ready
const articleContent = await getArticleContent(url.pathname);
renderArticlePage(articleContent);
},
});
}
});
Specification |
---|
HTML Standard # the-navigateevent-interface |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
NavigateEvent |
102 | 102 | No | No | No | No | 102 | 102 | No | 70 | No | 19.0 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/NavigateEvent/NavigateEvent