From f8d8e03e4c907b63cea413b9470a95cbf696eb5f Mon Sep 17 00:00:00 2001 From: MDN Web Docs GitHub Bot <108879845+mdn-bot@users.noreply.github.com> Date: Fri, 29 Nov 2024 08:03:49 +0100 Subject: [PATCH 1/3] [zh-cn] sync translated content (#24835) * zh-cn: sync translated content * Delete Window.updateCommands ref: mdn/content#36996 --------- Co-authored-by: Allo --- files/zh-cn/_redirects.txt | 1 + files/zh-cn/_wikihistory.json | 4 --- files/zh-cn/web/api/window/index.md | 34 +++++++++---------- .../web/api/window/updatecommands/index.md | 32 ----------------- 4 files changed, 17 insertions(+), 54 deletions(-) delete mode 100644 files/zh-cn/web/api/window/updatecommands/index.md diff --git a/files/zh-cn/_redirects.txt b/files/zh-cn/_redirects.txt index d837d5a2ef23c6..55d2e3205f96a3 100644 --- a/files/zh-cn/_redirects.txt +++ b/files/zh-cn/_redirects.txt @@ -1884,6 +1884,7 @@ /zh-CN/docs/Web/API/Window/openDialog /zh-CN/docs/Web/API/Window /zh-CN/docs/Web/API/Window/pageXOffset /zh-CN/docs/Web/API/Window/scrollX /zh-CN/docs/Web/API/Window/pageYOffset /zh-CN/docs/Web/API/Window/scrollY +/zh-CN/docs/Web/API/Window/updateCommands /zh-CN/docs/Web/API/Window /zh-CN/docs/Web/API/WindowBase64/Base64_encoding_and_decoding /zh-CN/docs/Glossary/Base64 /zh-CN/docs/Web/API/WindowBase64/atob /zh-CN/docs/Web/API/Window/atob /zh-CN/docs/Web/API/WindowBase64/btoa /zh-CN/docs/Web/API/Window/btoa diff --git a/files/zh-cn/_wikihistory.json b/files/zh-cn/_wikihistory.json index bc33ac5681f823..bd49aacc0df3f3 100644 --- a/files/zh-cn/_wikihistory.json +++ b/files/zh-cn/_wikihistory.json @@ -15846,10 +15846,6 @@ "jtyjty99999" ] }, - "Web/API/Window/updateCommands": { - "modified": "2020-10-15T22:09:40.955Z", - "contributors": ["usernameisMan"] - }, "Web/API/Window/visualViewport": { "modified": "2019-03-18T21:36:53.168Z", "contributors": ["eiddie"] diff --git a/files/zh-cn/web/api/window/index.md b/files/zh-cn/web/api/window/index.md index b719ac4f26709a..07d5a400f6d2e7 100644 --- a/files/zh-cn/web/api/window/index.md +++ b/files/zh-cn/web/api/window/index.md @@ -151,22 +151,18 @@ _本接口从 {{domxref("EventTarget")}} 接口继承属性。_ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ -- {{domxref("EventTarget.addEventListener", "Window.addEventListener()")}} - - : 为 window 上的特定事件类型注册一个事件处理器。 - {{domxref("Window.atob()")}} - : 解码一个使用 base-64 编码的数据字符串。 - {{domxref("Window.alert()")}} - : 显示一个警告对话框。 -- {{domxref("Window.blur()")}} +- {{domxref("Window.blur()")}} {{deprecated_inline}} - : 将焦点从窗口上移开。 -- {{domxref("btoa", "Window.btoa()")}} +- {{domxref("Window.btoa()")}} - : 从一串二进制数据中创建一个 base-64 编码的 ASCII 字符串。 - {{domxref("Window.cancelAnimationFrame()")}} - : 取消之前使用 {{domxref("Window.requestAnimationFrame")}} 安排的回调。 - {{domxref("Window.cancelIdleCallback()")}} - : 取消之前使用 {{domxref("Window.requestIdleCallback")}} 安排的回调。 -- {{domxref("Window.clearImmediate()")}} - - : 取消使用 `setImmediate()` 设置的重复执行任务。 - {{domxref("Window.clearInterval()")}} - : 取消使用 {{domxref("Window.setInterval()")}} 设置的重复执行任务。 - {{domxref("Window.clearTimeout()")}} @@ -177,8 +173,6 @@ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ - : 显示一个带有用户需要回应的信息对话框。 - {{domxref("Window.createImageBitmap()")}} - : 接受各种不同的图像源,并返回一个 {{jsxref("Promise")}},经兑现可得到 {{domxref("ImageBitmap")}}。可以选择将图片源裁剪成以 _(sx, sy)_ 为起点的像素矩形,宽度为 sw,高度为 sh。 -- {{domxref("EventTarget.dispatchEvent", "Window.dispatchEvent()")}} - - : 用于触发事件。 - {{domxref("Window.dump()")}} {{Non-standard_Inline}} - : 向控制台中写一条消息。 - {{domxref("Window.fetch()")}} @@ -207,10 +201,8 @@ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ - : 打开“打印”对话框,打印当前文档。 - {{domxref("Window.prompt()")}} - : 返回用户在提示对话框中输入的文本。 -- {{DOMxRef("Window.queryLocalFonts()")}} {{Experimental_Inline}} +- {{DOMxRef("Window.queryLocalFonts()")}} {{Experimental_Inline}} {{SecureContext_Inline}} - : 返回 {{jsxref("Promise")}},经兑现可得到包含一个代表本地可用字体的 {{domxref("FontData")}} 对象数组。 -- {{domxref("EventTarget.removeEventListener", "Window.removeEventListener()")}} - - : 从 window 上移除一个事件监听器。 - {{domxref("reportError", "Window.reportError()")}} - : 报告一个脚本中的错误,模拟一个未处理的异常。 - {{domxref("Window.requestAnimationFrame()")}} @@ -231,12 +223,8 @@ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ - : 按给定的页数滚动文档。 - {{domxref("Window.scrollTo()")}} - : 将文档滚动至特定坐标。 -- {{domxref("Window.setImmediate()")}} - - : 在浏览器完成其他繁重的任务后执行一个函数。 - {{domxref("Window.setInterval()")}} - : 安排一个函数,在给定的毫秒数过去后执行。 -- {{domxref("Window.setResizable()")}} {{Non-standard_Inline}} - - : 切换用户调整窗口大小的能力。 - {{domxref("Window.setTimeout()")}} - : 安排函数在给定的时间内执行。 - {{domxref("Window.sizeToContent()")}} {{Non-standard_Inline}} @@ -249,8 +237,6 @@ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ - : 显示一个目录选择器,允许用户选择一个目录。 - {{domxref("Window.stop()")}} - : 该方法停止了窗口的加载。 -- {{domxref("Window.updateCommands()")}} {{Non-standard_Inline}} - - : 更新当前 chrome 窗口(用户界面)的命令状态。 ### 已弃用的方法 @@ -258,12 +244,24 @@ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ - : 在窗口历史中后退一步。该方法已被废弃,应该使用 {{domxref("History.back", "history.back()")}} 代替。 - {{domxref("Window.captureEvents()")}} {{Deprecated_Inline}} - : 注册窗口以捕获所有指定类型的事件。 +- {{domxref("Window.clearImmediate()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} + - : 取消使用 `setImmediate()` 设置的重复执行任务。 - {{domxref("Window.forward()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} - : 在窗口历史中前进一步。该方法已被废弃,应该使用 {{domxref("History.forward", "history.forward()")}} 代替。 - {{domxref("Window.releaseEvents()")}} {{Deprecated_Inline}} - : 解除窗口对特定类型事件的捕获。 +- {{domxref("Window.requestFileSystem()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} + - : 允许网站或应用访问沙盒文件系统以供自己使用。 +- {{domxref("Window.setImmediate()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} + - : 在浏览器完成其他繁重的任务后执行一个函数。 +- {{domxref("Window.setResizable()")}} {{Non-standard_Inline}} {{deprecated_inline}} + - : 不执行操作(no-op)。保持对 Netscape 4.x 的向后兼容性。 - {{domxref("Window.showModalDialog()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} - - : 显示一个对话框。 + - : 显示一个模态对话框。 +- {{domxref("Window.webkitConvertPointFromNodeToPage()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} + - : 将 {{domxref("WebKitPoint")}} 从节点坐标系转换到页面坐标系。 +- {{domxref("Window.webkitConvertPointFromPageToNode()")}} {{Non-standard_Inline}} {{Deprecated_Inline}} + - : 将 {{domxref("WebKitPoint")}} 从页面坐标系转换到节点坐标系。 ## 事件 diff --git a/files/zh-cn/web/api/window/updatecommands/index.md b/files/zh-cn/web/api/window/updatecommands/index.md deleted file mode 100644 index 31ed142fbea865..00000000000000 --- a/files/zh-cn/web/api/window/updatecommands/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Window.updateCommands() -slug: Web/API/Window/updateCommands ---- - -{{ ApiRef() }}{{Non-standard_header}} - -## 概要 - -更新当前 chrome 窗口(UI)的命令状态。 - -## 语法 - -```plain -window.updateCommands("sCommandName") -``` - -## 参数 - -- `sCommandName` 是一个特定的字符串,它描述了这种更新事件的类型 (我们用到了背景色注明). - -## 记录 - -这将启用或禁用项目(根据需要在命令节点上设置或清除“disabled”属性),或通过在 XUL 命令节点的“state”属性中设置当前状态信息来确保命令状态反映选择的状态。 - -## 规范 - -DOM 0 级。不属于规范。 - -## 浏览器兼容性 - -{{Compat}} From 99d24df984f0615ee28327a32abbcad848b3aa05 Mon Sep 17 00:00:00 2001 From: 720 <71604450+T34-active@users.noreply.github.com> Date: Fri, 29 Nov 2024 15:50:23 +0800 Subject: [PATCH 2/3] [zh-cn]: update the translation of WebSocket `readyState` property (#24823) --- .../web/api/websocket/readystate/index.md | 38 ++++++++----------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/files/zh-cn/web/api/websocket/readystate/index.md b/files/zh-cn/web/api/websocket/readystate/index.md index b3ce90ce65cc90..2e93b5814a77eb 100644 --- a/files/zh-cn/web/api/websocket/readystate/index.md +++ b/files/zh-cn/web/api/websocket/readystate/index.md @@ -1,37 +1,31 @@ --- -title: WebSocket.readyState +title: WebSocket:readyState 属性 slug: Web/API/WebSocket/readyState +l10n: + sourceCommit: fb311d7305937497570966f015d8cc0eb1a0c29c --- -{{APIRef("Web Sockets API")}} +{{APIRef("WebSockets API")}}{{AvailableInWorkers}} -## 概要 - -返回当前 {{domxref("WebSocket")}} 的链接状态,只读。 - -## 语法 - -```plain -var readyState = WebSocket.readyState; -``` +**`WebSocket.readyState`** 只读属性返回 {{domxref("WebSocket")}} 连接的当前状态。 ## 值 -以下其中之一 +一个数字,是 {{domxref("WebSocket")}} 接口定义的四个可能状态常量之一: -- 0 (`WebSocket.CONNECTING`) - - : 正在链接中 -- 1 (`WebSocket.OPEN`) - - : 已经链接并且可以通讯 -- 2 (`WebSocket.CLOSING`) - - : 连接正在关闭 -- 3 (`WebSocket.CLOSED`) - - : 连接已关闭或者没有链接成功 +- `WebSocket.CONNECTING`(0) + - : 套接字已创建,但连接尚未打开。 +- `WebSocket.OPEN`(1) + - : 连接已打开,准备进行通信。 +- `WebSocket.CLOSING`(2) + - : 连接正在关闭中。 +- `WebSocket.CLOSED`(3) + - : 连接已关闭或无法打开。 -## Specifications +## 规范 {{Specifications}} -## Browser compatibility +## 浏览器兼容性 {{Compat}} From 541199922ab35ef40a8e99d35527c61fa53b77b0 Mon Sep 17 00:00:00 2001 From: Chunhui Fu Date: Fri, 29 Nov 2024 17:00:37 +0800 Subject: [PATCH 3/3] [zh-cn]: create docs for FencedFrameConfig (#24620) Co-authored-by: A1lo --- files/zh-cn/web/api/fenced_frame_api/index.md | 2 +- .../zh-cn/web/api/fencedframeconfig/index.md | 113 ++++++++++++++++++ .../setsharedstoragecontext/index.md | 98 +++++++++++++++ 3 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 files/zh-cn/web/api/fencedframeconfig/index.md create mode 100644 files/zh-cn/web/api/fencedframeconfig/setsharedstoragecontext/index.md diff --git a/files/zh-cn/web/api/fenced_frame_api/index.md b/files/zh-cn/web/api/fenced_frame_api/index.md index 5f2b9ebc208c0b..1eaefa339e2a19 100644 --- a/files/zh-cn/web/api/fenced_frame_api/index.md +++ b/files/zh-cn/web/api/fenced_frame_api/index.md @@ -41,7 +41,7 @@ Web 上[隐私](/zh-CN/docs/Web/Privacy)和[安全](/zh-CN/docs/Web/Security)问 如上所述,你不能通过常规脚本直接控制嵌入在 {{htmlelement("fencedframe")}} 中的内容。 -要设置将在 `` 中显示的内容,使用 API(如[受保护的受众](https://developers.google.com/privacy-sandbox/private-advertising/protected-audience)或[共享存储](https://developers.google.com/privacy-sandbox/private-advertising/shared-storage))生成一个 {{domxref("FencedFrameConfig")}} 对象,然后通过 Javascript 将该对象设置为 `` 的 {{domxref("HTMLFencedFrameElement.config")}} 属性 +要设置将在 `` 中显示的内容,使用 API(如[受保护的受众](https://developers.google.com/privacy-sandbox/private-advertising/protected-audience)或[共享存储](https://developers.google.com/privacy-sandbox/private-advertising/shared-storage))生成一个 {{domxref("FencedFrameConfig")}} 对象,然后通过 Javascript 将该对象设置为 `` 的 {{domxref("HTMLFencedFrameElement.config")}} 属性。 以下示例从受保护的受众 API 的广告拍卖中获取一个 `FencedFrameConfig`,然后使用它在 `` 中显示获胜的广告: diff --git a/files/zh-cn/web/api/fencedframeconfig/index.md b/files/zh-cn/web/api/fencedframeconfig/index.md new file mode 100644 index 00000000000000..3fca35e97bd4f5 --- /dev/null +++ b/files/zh-cn/web/api/fencedframeconfig/index.md @@ -0,0 +1,113 @@ +--- +title: FencedFrameConfig +slug: Web/API/FencedFrameConfig +l10n: + sourceCommit: f430d277573ba0b06b1ac33ae8017fd90f170bef +--- + +{{SeeCompatTable}}{{APIRef("Fenced Frame API")}} + +**`FencedFrameConfig`** 接口表示 {{htmlelement("fencedframe")}} 的导航,即其中将显示什么内容。 + +`FencedFrameConfig` 对象无法通过 JavaScript 手动构造。它们由诸如[受保护的受众 API](https://developers.google.cn/privacy-sandbox/private-advertising/protected-audience) 之类的来源返回,并被设置为 {{domxref("HTMLFencedFrameElement.config")}} 的值。 + +`FencedFrameConfig` 对象实例具有一个公开的方法,但它也映射到包含无法从 JavaScript 访问的不透明属性的内部配置信息。这包括诸如加载内容的来源和用于广告目的的兴趣组等信息。这是围栏框架如何在尊重用户隐私的同时实现关键用例的关键所在。 + +{{InheritanceDiagram}} + +## 实例方法 + +- {{domxref("FencedFrameConfig.setSharedStorageContext", "setSharedStorageContext()")}} {{experimental_inline}} + - : 将嵌入文档中的数据传递到 `` 的共享存储中。 + +## 示例 + +### 基本用法 + +要设置将在 `` 中显示的内容,使用 API(如[受保护的受众](https://developers.google.cn/privacy-sandbox/private-advertising/protected-audience)或[共享存储](https://developers.google.cn/privacy-sandbox/private-advertising/shared-storage))生成一个 `FencedFrameConfig` 对象,然后设置为 `` 的 `config` 属性值。 + +以下示例从受保护的受众 API 的广告竞价中获取 `FencedFrameConfig`,然后使用它在 `` 中显示竞价成功的广告: + +```js +const frameConfig = await navigator.runAdAuction({ + // 竞价配置 + resolveToConfig: true, +}); + +const frame = document.createElement("fencedframe"); +frame.config = frameConfig; +``` + +> [!NOTE] +> 在调用 `runAdAuction()` 时,必须传入 `resolveToConfig: true` 以获得 `FencedFrameConfig` 对象。如果没有设置,则所得的 {{jsxref("Promise")}} 将兑现为一个只能在 {{htmlelement("iframe")}} 中使用的 URN。 + +### 通过 `setSharedStorageContext()` 传递上下文数据 + +你可以使用[隐私聚合 API](https://developers.google.cn/privacy-sandbox/private-advertising/private-aggregation) 来创建报告,该报告将围栏框架内的事件级数据与嵌入文档的上下文数据相结合。`setSharedStorageContext()` 可用于将从嵌入方传递的上下文数据传递给由[受保护的受众 API](https://developers.google.cn/privacy-sandbox/private-advertising/protected-audience) 启动的共享存储 worklet。 + +在下面的示例中,我们将嵌入页面和围栏框架中的数据都存储在[共享存储](https://developers.google.cn/privacy-sandbox/private-advertising/shared-storage)中。 + +在嵌入页面中,我们将使用 `setSharedStorageContext()` 设置一个模拟事件 ID 作为共享存储上下文: + +```js +const frameConfig = await navigator.runAdAuction({ resolveToConfig: true }); + +// 你想要从嵌入方传递给共享存储 worklet 的数据 +frameConfig.setSharedStorageContext("some-event-id"); + +const frame = document.createElement("fencedframe"); +frame.config = frameConfig; +``` + +在围栏框架内,我们使用 {{domxref("Worklet.addModule","window.sharedStorage.worklet.addModule()")}} 添加 worklet 模块,然后使用 {{domxref("WindowSharedStorage.run","window.sharedStorage.run()")}} 将事件级数据发送到共享存储 worklet 中(这与来自嵌入文档的上下文数据无关): + +```js +const frameData = { + // 数据仅在围栏框架内可用 +}; + +await window.sharedStorage.worklet.addModule("reporting-worklet.js"); + +await window.sharedStorage.run("send-report", { + data: { + frameData, + }, +}); +``` + +在 `reporting-worklet.js` worklet 中,我们从 `sharedStorage.context` 中读取嵌入文档的事件 ID,并从数据对象中读取框架的事件级数据,然后通过[隐私聚合](https://developers.google.cn/privacy-sandbox/private-advertising/private-aggregation)进行报告: + +```js +class ReportingOperation { + convertEventIdToBucket(eventId) { ... } + convertEventPayloadToValue(info) { ... } + + async run(data) { + // 来自于嵌入方的数据 + const eventId = sharedStorage.context; + + // 来自于围栏框架的数据 + const eventPayload = data.frameData; + + privateAggregation.sendHistogramReport({ + bucket: convertEventIdToBucket(eventId), + value: convertEventPayloadToValue(eventPayload) + }); + } +} + +register('send-report', ReportingOperation); +``` + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}} + +## 参见 + +- developers.google.cn 上的[围栏框架](https://developers.google.cn/privacy-sandbox/private-advertising/fenced-frame) +- developers.google.cn 上的[隐私沙盒](https://developers.google.cn/privacy-sandbox) diff --git a/files/zh-cn/web/api/fencedframeconfig/setsharedstoragecontext/index.md b/files/zh-cn/web/api/fencedframeconfig/setsharedstoragecontext/index.md new file mode 100644 index 00000000000000..460079b420715b --- /dev/null +++ b/files/zh-cn/web/api/fencedframeconfig/setsharedstoragecontext/index.md @@ -0,0 +1,98 @@ +--- +title: FencedFrameConfig:setSharedStorageContext() 方法 +slug: Web/API/FencedFrameConfig/setSharedStorageContext +l10n: + sourceCommit: 801556b40e45c735bf7f74e6db7d10864173e44a +--- + +{{APIRef("Fenced Frame API")}}{{SeeCompatTable}} + +{{domxref("FencedFrameConfig")}} 接口的 **`setSharedStorageContext()`** 方法用于将嵌入文档中的上下文数据传递到 `` [共享存储](https://developers.google.cn/privacy-sandbox/private-advertising/shared-storage)中。 + +## 语法 + +```js-nolint +setSharedStorageContext(context) +``` + +### 参数 + +- `context` + - : 一个表示要传递到共享存储中的上下文数据的字符串。一旦设置,它将被存储在 {{domxref("FencedFrameConfig")}} 实例的内部配置中。 + +### 返回值 + +无(`undefined`)。 + +## 示例 + +### 通过 `setSharedStorageContext()` 传递上下文数据 + +你可以使用[隐私聚合 API](https://developers.google.cn/privacy-sandbox/private-advertising/private-aggregation) 来创建报告,该报告将围栏框架内的事件级数据与嵌入文档的上下文数据相结合。`setSharedStorageContext()` 可用于将从嵌入方传递的上下文数据传递给由[受保护的受众 API](https://developers.google.cn/privacy-sandbox/private-advertising/protected-audience) 启动的共享存储 worklet。 + +在下面的示例中,我们将嵌入页面和围栏框架中的数据都存储在[共享存储](https://developers.google.cn/privacy-sandbox/private-advertising/shared-storage)中。 + +在嵌入页面中,我们将使用 `setSharedStorageContext()` 设置一个模拟事件 ID 作为共享存储上下文: + +```js +const frameConfig = await navigator.runAdAuction({ resolveToConfig: true }); + +// 你想要从嵌入方传递给共享存储 worklet 的数据 +frameConfig.setSharedStorageContext("some-event-id"); + +const frame = document.createElement("fencedframe"); +frame.config = frameConfig; +``` + +在围栏框架内,我们使用 {{domxref("Worklet.addModule","window.sharedStorage.worklet.addModule()")}} 添加 worklet 模块,然后使用 {{domxref("WindowSharedStorage.run","window.sharedStorage.run()")}} 将事件级数据发送到共享存储 worklet 中(这与来自嵌入文档的上下文数据无关): + +```js +const frameData = { + // 数据仅在围栏框架内可用 +}; + +await window.sharedStorage.worklet.addModule("reporting-worklet.js"); + +await window.sharedStorage.run("send-report", { + data: { + frameData, + }, +}); +``` + +在 `reporting-worklet.js` worklet 中,我们从 `sharedStorage.context` 中读取嵌入文档的事件 ID,并从数据对象中读取框架的事件级数据,然后通过隐私聚合(Private Aggregation)进行报告: + +```js +class ReportingOperation { + convertEventIdToBucket(eventId) { ... } + convertEventPayloadToValue(info) { ... } + + async run(data) { + // 来自于嵌入方的数据 + const eventId = sharedStorage.context; + + // 来自于围栏框架的数据 + const eventPayload = data.frameData; + + privateAggregation.sendHistogramReport({ + bucket: convertEventIdToBucket(eventId), + value: convertEventPayloadToValue(eventPayload) + }); + } +} + +register('send-report', ReportingOperation); +``` + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}} + +## 参见 + +- developers.google.cn 上的[围栏框架](https://developers.google.cn/privacy-sandbox/private-advertising/fenced-frame) +- developers.google.cn 上的[隐私沙盒](https://developers.google.cn/privacy-sandbox)