Skip to content

Commit

Permalink
[zh-cn]: update translation of broadcast channel api - part i (#23358)
Browse files Browse the repository at this point in the history
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: A1lo <[email protected]>
  • Loading branch information
3 people authored Sep 3, 2024
1 parent b47cd44 commit 58c02cd
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 41 deletions.
5 changes: 4 additions & 1 deletion files/zh-cn/web/api/broadcast_channel_api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@
title: Broadcast Channel API
slug: Web/API/Broadcast_Channel_API
l10n:
sourceCommit: 50a45d52fd9f45f1ca30b546af5920d0ccda82dc
sourceCommit: be8f7f155a48e11b30c240f8731afb1845f85378
---

{{DefaultAPISidebar("Broadcast Channel API")}} {{AvailableInWorkers}}

**Broadcast Channel API** 允许{{glossary("browsing context", "浏览上下文")}}(即 _window__tab__frame__iframe_)与同{{glossary("origin", "源")}}的 worker 之间进行基本通信。

> [!NOTE]
> 确切地说,允许使用相同的[存储分区](/zh-CN/docs/Web/Privacy/State_Partitioning)的浏览上下文之间进行通信。首先根据顶级网站对存储空间进行分区,例如,如果你在 `a.com` 处打开了一个页面,其中嵌入了 `b.com` 的 iframe,而另一个页面打开的页面是 `b.com`,则 iframe 无法与第二个页面通信,尽管它们在技术上是同源的。但是,如果第一个页面也位于 `b.com` 上,则 iframe 可以与第二个页面通信。
通过创建 {{domxref("BroadcastChannel")}} 对象,你可以接收发布到该对象的任何消息。你不必维护对要与之通信的框架或 worker 的引用:他们可以通过构建具有相同名称的 {{domxref("BroadcastChannel")}} 来“订阅”特定频道,并在它们之间进行双向通信。

![Broadcast Channel API 的原理](broadcastchannel.png)
Expand Down
10 changes: 5 additions & 5 deletions files/zh-cn/web/api/broadcastchannel/broadcastchannel/index.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: BroadcastChannel()
slug: Web/API/BroadcastChannel/BroadcastChannel
l10n:
sourceCommit: 0a881eea07f0cec6ca4ed85a24af43b367a9f80d
---

{{APIRef("BroadCastChannel API")}}
{{APIRef("BroadCastChannel API")}} {{AvailableInWorkers}}

**`BroadcastChannel()`** 构造函数用于创建一个 {{domxref("BroadcastChannel")}} 对象,并与底层的通道相关联。

{{AvailableInWorkers}}

## 语法

```js-nolint
Expand All @@ -18,15 +18,15 @@ new BroadcastChannel(channelName)
### 参数

- `channelName`
- : 表示通道名称的字符串;对于相同的{{glossary("origin", "来源")}}下的所有{{glossary("browsing context", "浏览上下文")}},一个名称只对应一个通道。
- : 表示通道名称的字符串;对于同{{glossary("origin", "")}}下的所有{{glossary("browsing context", "浏览上下文")}},一个名称只对应一个通道。

## 示例

```js
// 创建一个监听“internal_notification”通道的新通道。

const bc = new BroadcastChannel("internal_notification");
bc.postMessage("New listening connected!");
bc.postMessage("新的监听连接!");
```

## 规范
Expand Down
41 changes: 17 additions & 24 deletions files/zh-cn/web/api/broadcastchannel/index.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,45 @@
---
title: BroadcastChannel
slug: Web/API/BroadcastChannel
l10n:
sourceCommit: 50a45d52fd9f45f1ca30b546af5920d0ccda82dc
---

{{APIRef("Broadcast Channel API")}}
{{APIRef("Broadcast Channel API")}} {{AvailableInWorkers}}

**`BroadcastChannel`** 接口代理了一个命名频道,可以让指定 {{glossary("origin")}} 下的任意 {{glossary("browsing context")}} 来订阅它。它允许同源的不同浏览器窗口,Tab 页,frame 或者 iframe 下的不同文档之间相互通信。通过触发一个 [`message`](/zh-CN/docs/Web/API/BroadcastChannel/message_event) 事件,消息可以广播到所有监听了该频道的 `BroadcastChannel` 对象
**`BroadcastChannel`** 接口表示给定{{glossary("origin", "源")}}的任何{{glossary("browsing context", "浏览上下文")}}都可以订阅的命名频道。它允许同源的不同浏览器窗口、标签页、frame 或者 iframe 下的不同文档之间相互通信。消息通过 {{domxref("BroadcastChannel/message_event", "message")}} 事件进行广播,该事件在侦听该频道的所有 `BroadcastChannel` 对象上触发,发送消息的对象除外

{{AvailableInWorkers}}
{{InheritanceDiagram}}

## 构造函数

- {{domxref("BroadcastChannel.BroadcastChannel", "BroadcastChannel()")}}
- : 创建一个链接到命名频道的对象。

## 属性
## 实例属性

_该接口会从它的父级 {{domxref("EventTarget")}} 继承属性。_
_该接口也从它的父接口 {{domxref("EventTarget")}} 继承属性。_

- {{domxref("BroadcastChannel.name")}}
- : 频道名称,返回 {{domxref("DOMString")}}。

### 事件处理程序
## 实例方法

- {{domxref("BroadcastChannel.onmessage")}}

- : 事件处理器,用于定义当该对象上触发了 [`message`](/zh-CN/docs/Web/API/BroadcastChannel/message_event) 事件时要执行的函数。

- {{domxref("BroadcastChannel.onmessageerror")}}
- : 事件处理器,用于定义当该对象上触发了类型为 {{domxref("MessageError")}} 的 {{domxref("MessageEvent")}} 事件时要执行的函数。当接收到一条无法反序列化的消息时会触发此事件。

## 方法

_该接口会从它的父级 {{domxref("EventTarget")}} 继承方法。_
_该接口也从它的父接口 {{domxref("EventTarget")}} 继承方法。_

- {{domxref("BroadcastChannel.postMessage()")}}
- : 向所有监听了相同频道的 `BroadcastChannel` 对象发送一条消息,消息内容可以是任意类型的数据。
- {{domxref("BroadcastChannel.close()")}}
- : 关闭频道对象,告诉它不要再接收新的消息,并允许它最终被垃圾回收。
- : 关闭频道对象,指示它不会收到任何新消息,并允许它最终被垃圾回收。

## 事件

- [`message`](/zh-CN/docs/Web/API/BroadcastChannel/message_event)
- : 当频道收到一条消息时触发。
也可以使用 [`onmessage`](/zh-CN/docs/Web/API/BroadcastChannel/onmessage) 属性访问。
- [`messageerror`](/zh-CN/docs/Web/API/BroadcastChannel/messageerror_event)
- : 当频道收到一条无法反序列化的消息时触发。
也可以使用 [`onmessageerror`](/zh-CN/docs/Web/API/BroadcastChannel/onmessageerror) 属性访问。
_该接口也从它的父接口 {{domxref("EventTarget")}} 继承事件。_

- {{domxref("BroadcastChannel/message_event", "message")}}
- : 当频道收到一条消息时触发。也可以使用 `onmessage` 属性访问。
- {{domxref("BroadcastChannel/messageerror_event", "messageerror")}}
- : 当频道收到一条无法反序列化的消息时触发。也可以使用 `onmessageerror` 属性访问。

## 规范

Expand All @@ -59,4 +52,4 @@ _该接口会从它的父级 {{domxref("EventTarget")}} 继承方法。_
## 参见

- 一种在不同浏览器上下文之间通信的重量级方案:{{domxref("ServiceWorker")}}。
- [Broadcast Channel API overview](/zh-CN/docs/Web/API/Broadcast_Channel_API)
- [Broadcast Channel API 概述](/zh-CN/docs/Web/API/Broadcast_Channel_API)
20 changes: 9 additions & 11 deletions files/zh-cn/web/api/broadcastchannel/name/index.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
---
title: BroadcastChannel.name
title: BroadcastChannelname 属性
slug: Web/API/BroadcastChannel/name
l10n:
sourceCommit: 50a45d52fd9f45f1ca30b546af5920d0ccda82dc
---

{{APIRef("BroadCastChannel API")}}
{{APIRef("BroadCastChannel API")}} {{AvailableInWorkers}}

**`BroadcastChannel.name`** 是类型为 {{domxref("DOMString")}} 的只读属性,是频道的唯一标识。属性 name 是在创建时传入 {{domxref("BroadcastChannel.BroadCastChannel", "BroadcastChannel()")}} 构造函数的,所以是只读的
{{domxref("BroadcastChannel")}} 接口的 **`name`** 只读属性返回一个字符串,该字符串使用其名称唯一标识给定频道。此名称在创建时传递给 {{domxref("BroadcastChannel.BroadCastChannel", "BroadcastChannel()")}} 构造函数,因此是只读的

{{AvailableInWorkers}}
##

## 语法

```plain
var str = channel.name;
```
一个字符串。

## 示例

```js
// 连接到指定频道
var bc = new BroadcastChannel("test_channel");
const bc = new BroadcastChannel("test_channel");

// 其他操作 (如:postMessage, …)
// 其他操作如:postMessage、……)

// 在控制台打印频道名称
console.log(bc.name); // "test_channel"
Expand Down

0 comments on commit 58c02cd

Please sign in to comment.