导航: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.currentEntryNavigationHistoryEntry.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 表格仅在浏览器中加载

另请参阅