The Navigation interface of the Navigation API allows control over all navigation actions for the current window in one central place, including initiating navigations programmatically, examining navigation history entries, and managing navigations as they happen.
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.
Returns true if it is possible to navigate backwards in the navigation history (i.e. the currentEntry is not the first one in the history entry list), and false if it is not.
Returns true if it is possible to navigate forwards in the navigation history (i.e. the currentEntry is not the last one in the history entry list), and false if it is not.
Returns a NavigationTransition object representing the status of an in-progress navigation, which can be used to track it. Returns null if no navigation is currently in progress.
asyncfunctionbackHandler(){if(navigation.canGoBack){await navigation.back().finished;// Handle any required clean-up after// navigation has finished}else{displayBanner("You are on the first page");}}asyncfunctionforwardHandler(){if(navigation.canGoForward){await navigation.forward().finished;// Handle any required clean-up after// navigation has finished}else{displayBanner("You are on the last page");}}
Traversing to a specific history entry
js
// On JS startup, get the key of the first loaded page// so the user can always go back there.const{ key }= navigation.currentEntry;
backToHomeButton.onclick=()=> navigation.traverseTo(key);// Navigate away, but the button will always work.await navigation.navigate("/another_url").finished;
Navigating and updating state
js
navigation.navigate(url,{state: newState });
Or
js
navigation.reload({state: newState });
Or if the state is independent from a navigation or reload: