diff --git a/files/zh-cn/mozilla/add-ons/webextensions/api/pageaction/getpopup/index.md b/files/zh-cn/mozilla/add-ons/webextensions/api/pageaction/getpopup/index.md new file mode 100644 index 00000000000000..311dcbc4675c64 --- /dev/null +++ b/files/zh-cn/mozilla/add-ons/webextensions/api/pageaction/getpopup/index.md @@ -0,0 +1,94 @@ +--- +title: pageAction.getPopup() +slug: Mozilla/Add-ons/WebExtensions/API/pageAction/getPopup +l10n: + sourceCommit: b8a0743ca8b1e1b1b1a95cc93a4413c020f11262 +--- + +{{AddonSidebar}} + +获取设为该页面操作的弹窗的 HTML 文档的 URL。 + +这是一个返回 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise) 的异步函数。 + +## 语法 + +```js-nolint +let gettingPopup = browser.pageAction.getPopup( + details // 对象 +) +``` + +### 参数 + +- `details` + + - : `object`。 + + - `tabId` + - : `integer`。要获取弹窗的标签页 ID。 + +### 返回值 + +一个 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise),将兑现包含弹窗文档的 URL 的字符串。 + +## 浏览器兼容性 + +{{Compat}} + +## 示例 + +添加一个上下文菜单项以记录当前标签页的弹窗 URL。请注意,要创建上下文菜单项,你需要在[清单](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/manifest.json)中取得 `contextMenus` [权限](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions)。 + +```js +function gotPopup(popupURL) { + console.log(popupURL); +} + +browser.contextMenus.create({ + id: "get-popup", + title: "获取弹窗 URL", +}); + +browser.contextMenus.onClicked.addListener((info, tab) => { + if (info.menuItemId === "get-popup") { + let gettingPopup = browser.pageAction.getPopup({ tabId: tab.id }); + gettingPopup.then(gotPopup); + } +}); +``` + +{{WebExtExamples}} + +> [!NOTE] +> 该 API 基于 Chromium 的 [`chrome.pageAction`](https://developer.chrome.google.cn/docs/extensions/mv2/reference/pageAction#method-getPopup) API。本文衍生自 Chromium 代码中的 [`page_action.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/page_action.json)。 + +