diff --git a/files/zh-cn/mozilla/add-ons/webextensions/api/action/getpopup/index.md b/files/zh-cn/mozilla/add-ons/webextensions/api/action/getpopup/index.md new file mode 100644 index 00000000000000..fe022ccb8bccd8 --- /dev/null +++ b/files/zh-cn/mozilla/add-ons/webextensions/api/action/getpopup/index.md @@ -0,0 +1,95 @@ +--- +title: action.getPopup() +slug: Mozilla/Add-ons/WebExtensions/API/action/getPopup +l10n: + sourceCommit: b30a10c08b986ebabd44733fb62f67667350403e +--- + +{{AddonSidebar}} + +获取设为该浏览器操作的弹窗的 HTML 文档。 + +> [!NOTE] +> 该 API 在 Manifest V3 或更高版本中可用。 + +这是一个返回 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise) 的异步函数。 + +## 语法 + +```js-nolint +let gettingPopup = browser.action.getPopup( + details // 对象 +) +``` + +### 参数 + +- `details` + + - : 一个含有下列属性的对象: + + - `tabId` {{optional_inline}} + - : `integer`,指定要获取弹窗的标签页。 + - `windowId` {{optional_inline}} + - : `integer`,指定要获取弹窗的窗口。 + + + +- 若同时指定了 `windowId` 和 `tabId`,则函数出错。 +- 若同时未指定 `windowId` 和 `tabId`,则返回全局弹窗。 + +### 返回值 + +一个 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise),会兑现包含弹窗文档的 URL 的字符串。该 URL 是完全限定 URL,例如 `moz-extension://d1d8a2eb-fe60-f646-af30-a866c5b39942/popups/popup2.html`。 + +## 示例 + +获取弹窗的 URL: + +```js +function gotPopup(popupURL) { + console.log(popupURL); +} + +let gettingPopup = browser.action.getPopup({}); +gettingPopup.then(gotPopup); +``` + +{{WebExtExamples}} + +## 浏览器兼容性 + +{{Compat}} + +> [!NOTE] +> 该 API 基于 Chromium 的 [`chrome.action`](https://developer.chrome.com/docs/extensions/reference/action/#method-getPopup) API。该文档衍生自 Chromium 代码中的 [`browser_action.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/browser_action.json)。 + +