导航:forward() 方法
forward()
方法是 Navigation
接口的方法,它在导航历史记录中向前导航一个条目。
语法
js
forward(options)
参数
options
可选-
包含以下属性的选项对象
info
可选-
开发者定义的信息,将传递给
navigate
事件,并在NavigateEvent.info
中提供。这可以是任何数据类型。例如,您可能希望根据导航方式(向左滑动、向右滑动或返回主页)以不同的动画显示新导航的内容。可以将指示要使用哪种动画的字符串作为info
传递。
返回值
包含以下属性的对象
committed
-
一个
Promise
,当可见 URL 发生更改并且创建了一个新的NavigationHistoryEntry
时,该承诺将被履行。 finished
-
一个
Promise
,当NavigateEvent.intercept()
处理程序返回的所有承诺都已履行时,该承诺将被履行。这等同于NavigationTransition.finished
承诺履行时,当navigatesuccess
事件触发时。
如果导航因某种原因失败,则这两个承诺中的任何一个都将被拒绝。
异常
InvalidStateError
DOMException
-
如果
Navigation.currentEntry
的NavigationHistoryEntry.index
值为 -1 或navigation.entries().length - 1
,即当前Document
尚未激活,或者当前历史记录条目是历史记录中的最后一个条目,这意味着无法向前导航,或者当前Document
正在卸载,则会抛出此异常。
示例
js
async function backHandler() {
if (navigation.canGoBack) {
await navigation.back().finished;
// Handle any required clean-up after
// navigation has finished
} else {
displayBanner("You are on the first page");
}
}
async function forwardHandler() {
if (navigation.canGoForward) {
await navigation.forward().finished;
// Handle any required clean-up after
// navigation has finished
} else {
displayBanner("You are on the last page");
}
}
规范
规范 |
---|
HTML 标准 # dom-navigation-forward-dev |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- 现代客户端路由:导航 API
- 导航 API 解释器
- Domenic Denicola 的 导航 API 实时演示