Navigation:forward() 方法
Baseline
2026
Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Navigation 接口的 forward() 方法在导航历史记录中向前导航一个条目。
语法
forward(options)
参数
options可选-
包含以下属性的选项对象:
info可选-
开发人员定义的信息,将传递给
navigate事件,可在NavigateEvent.info中获取。这可以是任何数据类型。例如,你可能希望根据导航方式(向左滑动、向右滑动或返回主页)以不同的动画显示新导航的内容。可以传入一个字符串来指示要使用哪种动画,该字符串可作为info传入。
返回值
具有以下属性的对象:
committed-
当可见 URL 发生改变并且新的
NavigationHistoryEntry被创建时,将兑现的Promise。 finished-
当
NavigateEvent.intercept()处理器返回的所有 promise 都被兑现时,将兑现的Promise。这相当于当navigatesuccess事件触发时,兑现NavigationTransition.finishedpromise。
如果导航由于某种原因失败,则这两个 promise 中的任意一个会被拒绝。
异常
InvalidStateErrorDOMException-
如果
Navigation.currentEntry的NavigationHistoryEntry.index值为 -1 或navigation.entries().length - 1,即当前Document尚未激活,或者当前历史记录条目是历史记录中的最后一条,即无法向前导航,或者当前Document正在卸载时,抛出此异常。
示例
async function backHandler() {
if (navigation.canGoBack) {
await navigation.back().finished;
// 导航结束后处理任何必要的清理工作
} else {
displayBanner("你在第一页");
}
}
async function forwardHandler() {
if (navigation.canGoForward) {
await navigation.forward().finished;
// 导航结束后处理任何必要的清理工作
} else {
displayBanner("你在最后一页");
}
}
规范
| Specification |
|---|
| HTML> # dom-navigation-forward-dev> |
浏览器兼容性
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示