sidebarAction.setPanel()
Legt das Panel der Sidebar fest: das ist das HTML-Dokument, das den Inhalt dieser Sidebar definiert.
Arten von Panels
Sidebars haben immer ein "Manifest-Panel", das im sidebar_action
Manifest-Schlüssel definiert ist.
Wenn Sie mit setPanel()
ein neues Panel setzen und die Option tabId
einbinden, wird das Panel nur für den angegebenen Tab festgelegt. Dieses Panel wird als "tab-spezifisches Panel" bezeichnet.
Wenn Sie mit setPanel()
ein neues Panel setzen und die Option windowId
einbinden, wird das Panel nur für das angegebene Fenster festgelegt. Dieses Panel wird als "fensterspezifisches Panel" bezeichnet und erscheint in allen Tabs dieses Fensters, die kein tab-spezifisches Panel gesetzt haben.
Wenn Sie mit setPanel()
ein neues Panel setzen und sowohl die Optionen tabId
als auch windowId
weglassen, wird das "globale Panel" gesetzt. Das globale Panel erscheint dann in allen Tabs, die kein tab-spezifisches Panel gesetzt haben und deren Fenster kein fensterspezifisches Panel hat.
Syntax
browser.sidebarAction.setPanel(
details // object
)
Parameter
details
-
object
. Ein Objekt mit den folgenden Eigenschaften:panel
-
string
odernull
. Das Panel, das in die Sidebar geladen werden soll, angegeben als URL, die auf ein HTML-Dokument verweist, odernull
, oder ein leerer String.Dies kann auf eine Datei innerhalb der Erweiterung hinweisen (zum Beispiel erstellt mit
runtime.getURL
), oder auf ein entferntes Dokument (z.B.https://example.org/
). Es muss eine gültige URL sein.Wenn
panel
null
oder""
ist, wird ein zuvor gesetztes Panel entfernt, sodass:- Wenn
tabId
angegeben ist und der Tab ein tab-spezifisches Panel hat, übernimmt der Tab das Panel von dem Fenster, zu dem er gehört. - Wenn
windowId
angegeben ist und das Fenster ein fensterspezifisches Panel hat, übernimmt das Fenster das globale Panel. - Andernfalls wird das globale Panel auf das Manifest-Panel zurückgesetzt.
- Wenn
tabId
Optional-
integer
. Setzt das Panel nur für den angegebenen Tab. windowId
Optional-
integer
. Setzt das Panel nur für das angegebene Fenster.
- Wenn
windowId
undtabId
beide angegeben sind, schlägt die Funktion fehl und das Panel wird nicht gesetzt. - Wenn
windowId
undtabId
beide weggelassen werden, wird das globale Panel gesetzt.
Beispiele
Dieser Code wechselt das Sidebar-Dokument, wenn der Benutzer eine Browser-Aktion anklickt:
let thisPanel = browser.runtime.getURL("/this.html");
let thatPanel = browser.runtime.getURL("/that.html");
function toggle(panel) {
if (panel === thisPanel) {
browser.sidebarAction.setPanel({ panel: thatPanel });
} else {
browser.sidebarAction.setPanel({ panel: thisPanel });
}
}
browser.browserAction.onClicked.addListener(() => {
browser.sidebarAction.getPanel({}).then(toggle);
});
Browser-Kompatibilität
Hinweis:
Diese API basiert auf der Opera chrome.sidebarAction
API.