action.setPopup()
Setzt das HTML-Dokument, das als Popup geöffnet wird, wenn der Benutzer auf das Symbol der Browser-Aktion klickt. Tabs ohne ein spezifisches Popup erben 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
browser.action.setPopup(
details // object
)
Parameter
details
-
Ein Objekt mit den folgenden Eigenschaften:
tabId
Optional-
integer
. Setzt das Popup nur für einen bestimmten Tab. Das Popup wird zurückgesetzt, wenn der Benutzer zu einer neuen Seite in diesem Tab navigiert. windowId
Optional-
integer
. Setzt das Popup nur für das angegebene Fenster. popup
-
string
odernull
. Die HTML-Datei, die in einem Popup angezeigt werden soll, angegeben als URL.Dies kann auf eine im Add-on enthaltene Datei verweisen (zum Beispiel erstellt mit
extension.getURL
), oder ein entferntes Dokument (z.B.https://example.org/
).Wenn hier ein leerer String (
""
) übergeben wird, ist das Popup deaktiviert, und das Add-on empfängtaction.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
undwindowId
beide weggelassen werden, wird das globale Popup auf den Standardwert zurückgesetzt.
- Wenn
- Wenn
windowId
undtabId
beide angegeben sind, schlägt die Funktion fehl und das Popup wird nicht gesetzt. - Wenn
windowId
undtabId
beide weggelassen werden, wird das globale Popup gesetzt.
Beispiele
Dieser Code fügt ein Paar von Kontextmenüeinträgen hinzu, mit denen Sie zwischen zwei Popups umschalten können. Beachten Sie, dass in der Manifest-Datei des Add-ons die "contextMenus"-Berechtigung gesetzt sein muss, um Kontextmenüeinträge zu erstellen.
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
Hinweis:
Diese API basiert auf Chromiums chrome.action
API. Diese Dokumentation ist abgeleitet von browser_action.json
im Chromium-Code.