files/en-us/web/api/navigateevent/canintercept/index.md
{{APIRef("Navigation API")}}
The canIntercept read-only property of the
{{domxref("NavigateEvent")}} interface returns true if the navigation can be intercepted and have its URL rewritten, or false otherwise
There are several rules around when a navigation can be intercepted. For example:
http or https URLs if only the path, query, and fragment portions of the new URL differ from the current URL.file URLs if only the query and fragment portions of the new URL differ.fragment portion differs.See the spec for more explanation on when a Document can have its URL rewritten, including a table of examples.
A boolean value—true if the navigation can be intercepted, false if not.
navigation.addEventListener("navigate", (event) => {
// Some navigations, e.g. cross-origin navigations, we
// cannot intercept. Let the browser handle those normally.
if (!event.canIntercept) {
return;
}
// Don't intercept fragment navigations or downloads.
if (event.hashChange || event.downloadRequest !== null) {
return;
}
event.intercept({
handler() {
if (event.formData) {
processFormDataAndUpdateUI(event.formData, event.signal);
} else {
doSinglePageAppNav(event.destination, event.signal);
}
},
});
});
{{Specifications}}
{{Compat}}