Skip to content

Commit

Permalink
[zh-CN]: add translation for Navigation.forward() (#24579)
Browse files Browse the repository at this point in the history
  • Loading branch information
skyclouds2001 authored Nov 19, 2024
1 parent 6b09c55 commit 132fb17
Showing 1 changed file with 75 additions and 0 deletions.
75 changes: 75 additions & 0 deletions files/zh-cn/web/api/navigation/forward/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: Navigation:forward() 方法
slug: Web/API/Navigation/forward
l10n:
sourceCommit: e00c30e3919b1cc08fa1ea3913e75a42a91add02
---

{{APIRef("Navigation API")}}{{SeeCompatTable}}

{{domxref("Navigation")}} 接口的 **`forward()`** 方法在导航历史记录中向前导航一个条目。

## 语法

```js-nolint
forward(options)
```

### 参数

- `options` {{optional_inline}}
- : 包含以下属性的选项对象:
- `info` {{optional_inline}}
- : 开发人员定义的信息,将传递给 {{domxref("Navigation/navigate_event", "navigate")}} 事件,可在 {{domxref("NavigateEvent.info")}} 中获取。这可以是任何数据类型。例如,你可能希望根据导航方式(向左滑动、向右滑动或返回主页)以不同的动画显示新导航的内容。可以传入一个字符串来指示要使用哪种动画,该字符串可作为 `info` 传入。

### 返回值

具有以下属性的对象:

- `committed`
- : 当可见 URL 发生改变并且新的 {{domxref("NavigationHistoryEntry")}} 被创建时,将兑现的 {{jsxref("Promise")}}。
- `finished`
- : 当 {{domxref("NavigateEvent.intercept()")}} 处理器返回的所有 promise 都被兑现时,将兑现的 {{jsxref("Promise")}}。这相当于当 {{domxref("Navigation/navigatesuccess_event", "navigatesuccess")}} 事件触发时,兑现 {{domxref("NavigationTransition.finished")}} promise。

如果导航由于某种原因失败,则这两个 promise 中的任意一个会被拒绝。

### 异常

- `InvalidStateError` {{domxref("DOMException")}}
- : 如果 {{domxref("Navigation.currentEntry")}} 的 {{domxref("NavigationHistoryEntry.index")}} 值为 -1 或 {{domxref("Navigation.entries", "navigation.entries().length - 1")}},即当前 {{domxref("Document")}} 尚未激活,或者当前历史记录条目是历史记录中的最后一条,即无法向前导航,或者当前 {{domxref("Document")}} 正在卸载时,抛出此异常。

## 示例

```js
async function backHandler() {
if (navigation.canGoBack) {
await navigation.back().finished;
// 导航结束后处理任何必要的清理工作
} else {
displayBanner("你在第一页");
}
}

async function forwardHandler() {
if (navigation.canGoForward) {
await navigation.forward().finished;
// 导航结束后处理任何必要的清理工作
} else {
displayBanner("你在最后一页");
}
}
```

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat}}

## 参见

- [现代客户端路由:导航 API](https://developer.chrome.google.cn/docs/web-platform/navigation-api/)
- [导航 API 说明](https://github.com/WICG/navigation-api/blob/main/README.md)
- Domenic Denicola 的[导航 API 在线演示](https://gigantic-honored-octagon.glitch.me/)

0 comments on commit 132fb17

Please sign in to comment.