导航:back() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

Navigation 接口的 back() 方法会在导航历史中向后移动一个条目。

语法

js
back(options)

参数

options 可选

一个包含以下属性的选项对象

info 可选

要传递给 navigate 事件的开发者定义的信息,可在 NavigateEvent.info 中访问。这可以是任何数据类型。例如,您可能希望根据内容的导航方式(左滑、右滑或主页)以不同的动画显示新导航的内容。可以将指示使用哪种动画的字符串作为 info 传递。

返回值

具有以下属性的对象:

committed

一个 Promise,当可见 URL 已更改且已创建新的 NavigationHistoryEntry 时,它将fulfilled。

finished

一个 Promise,当 intercept() 处理程序返回的所有 Promise 都 fulfilled 时,它将 fulfilled。这相当于 NavigationTransition.finished Promise fulfilled,当 navigatesuccess 事件触发时。

如果导航因某种原因失败,则这两个 Promise 中的任何一个都会 rejected。

异常

InvalidStateError DOMException

如果 Navigation.currentEntryNavigationHistoryEntry.index 值为 -1 或 0,则会抛出此错误。这意味着当前 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-back-dev

浏览器兼容性

另见