files/en-us/web/api/navigationdestination/index.md
{{APIRef("Navigation API")}}
The NavigationDestination interface of the {{domxref("Navigation API", "Navigation API", "", "nocode")}} represents the destination being navigated to in the current navigation.
It is accessed via the {{domxref("NavigateEvent.destination")}} property.
{{InheritanceDiagram}}
traverse, or an empty string otherwise.traverse, or -1 otherwise.traverse, or an empty string otherwise.true if the navigation is to the same document as the current {{domxref("Document")}} value, or false otherwise.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;
}
// Returns a URL() object constructed from the
// NavigationDestination.url value
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);
},
});
}
});
{{Specifications}}
{{Compat}}