action.setPopup()

Legt das HTML-Dokument fest, das als Popup geöffnet wird, wenn der Benutzer auf das Symbol der Browser-Aktion klickt. Tabs ohne ein spezifisches Popup übernehmen das globale Popup, das standardmäßig im Manifest durch default_popup angegeben ist.

Hinweis: Diese API ist in Manifest V3 oder höher verfügbar.

Syntax

js
browser.action.setPopup(
  details // object
)

Parameter

details

Ein Objekt mit den folgenden Eigenschaften:

tabId Optional

integer. Legt das Popup nur für einen bestimmten Tab fest. Das Popup wird zurückgesetzt, wenn der Benutzer diesen Tab auf eine neue Seite navigiert.

windowId Optional

integer. Legt das Popup nur für das angegebene Fenster fest.

string oder null. Die HTML-Datei, die in einem Popup angezeigt werden soll, als URL angegeben.

Dies kann auf eine innerhalb der Erweiterung gepackte Datei verweisen (z.B. erstellt mit extension.getURL), oder auf ein externes Dokument (z.B. https://example.org/).

Wenn hier ein leerer String ("") übergeben wird, wird das Popup deaktiviert und die Erweiterung erhält action.onClicked-Ereignisse.

Wenn popup null ist:

  • Wenn tabId angegeben ist, wird das tab-spezifische Popup entfernt, sodass der Tab das globale Popup übernimmt.
  • Wenn windowId angegeben ist, wird das fensterspezifische Popup entfernt, sodass das Fenster das globale Popup übernimmt.
  • Wenn tabId und windowId beide weggelassen werden, wird das globale Popup auf den Standardwert zurückgesetzt.
  • Wenn windowId und tabId beide angegeben sind, schlägt die Funktion fehl und das Popup wird nicht gesetzt.
  • Wenn windowId und tabId beide weggelassen werden, wird das globale Popup festgelegt.

Beispiele

Dieser Code fügt ein Paar von Kontextmenüeinträgen hinzu, mit denen Sie zwischen zwei Popups wechseln können. Beachten Sie, dass Sie die "contextMenus" Berechtigung im Manifest der Erweiterung setzen müssen, um Kontextmenüeinträge zu erstellen.

js
function onCreated() {
  if (browser.runtime.lastError) {
    console.log("error creating item:", browser.runtime.lastError);
  } else {
    console.log("item created successfully");
  }
}

browser.contextMenus.create(
  {
    id: "popup-1",
    type: "radio",
    title: "Popup 1",
    contexts: ["all"],
    checked: true,
  },
  onCreated,
);

browser.contextMenus.create(
  {
    id: "popup-2",
    type: "radio",
    title: "Popup 2",
    contexts: ["all"],
    checked: false,
  },
  onCreated,
);

browser.contextMenus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === "popup-1") {
    browser.action.setPopup({ popup: "/popup/popup1.html" });
  } else if (info.menuItemId === "popup-2") {
    browser.action.setPopup({ popup: "/popup/popup2.html" });
  }
});

Browser-Kompatibilität

BCD tables only load in the browser

Hinweis: Diese API basiert auf Chromiums chrome.action API. Diese Dokumentation stammt von browser_action.json im Chromium-Code.