pageAction.setPopup()

设置当用户点击页面操作图标时打开的弹窗的 HTML 文档。

语法

js
browser.pageAction.setPopup(
  details // 对象
)

参数

details

object

tabId

integer。要设置弹窗的标签页 ID。

stringnull。指向要在弹窗中显示的 HTML 页面的 URL。

如果传入了一个空字符串(""),则弹窗将被禁用且扩展将收到 pageAction.onClicked 事件。

如果传入了 null,则弹窗将重置为在 page_action 清单键中指定的弹窗。

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
setPopup
The popup property of the details parameter can be set to null.

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

示例

监听 tabs.onUpdated 事件,根据加载状态切换弹窗:

js
browser.tabs.onUpdated.addListener((tabId, changeInfo, tabInfo) => {
  if (changeInfo.status) {
    browser.pageAction.show(tabId);
    if (changeInfo.status === "loading") {
      browser.pageAction.setPopup({
        tabId,
        popup: "/popup/loading.html",
      });
    } else {
      browser.pageAction.setPopup({
        tabId,
        popup: "/popup/complete.html",
      });
    }
  }
});

备注: 该 API 基于 Chromium 的 chrome.pageAction API。本文衍生自 Chromium 代码中的 page_action.json