sidebarAction.setPanel()

Legt das Panel der Seitenleiste fest, also das HTML-Dokument, das den Inhalt dieser Seitenleiste definiert.

Arten von Panels

Seitenleisten haben immer ein "Manifest-Panel", das im Manifest-Schlüssel sidebar_action definiert ist.

Wenn Sie ein neues Panel mit setPanel() festlegen und die Option tabId einschließen, wird das Panel nur für den angegebenen Tab festgelegt. Dieses Panel wird als "Tab-spezifisches Panel" bezeichnet.

Wenn Sie ein neues Panel mit setPanel() festlegen und die Option windowId einschließen, wird das Panel nur für das angegebene Fenster festgelegt. Dieses Panel wird als "Fenster-spezifisches Panel" bezeichnet und erscheint in allen Tabs dieses Fensters, die kein Tab-spezifisches Panel haben.

Wenn Sie ein neues Panel mit setPanel() festlegen und sowohl die Optionen tabId als auch windowId auslassen, wird das "globale Panel" festgelegt. Das globale Panel erscheint dann in allen Tabs, die kein Tab-spezifisches Panel haben und deren Fenster kein Fenster-spezifisches Panel hat.

Syntax

js
browser.sidebarAction.setPanel(
  details // object
)

Parameter

details

object. Ein Objekt mit den folgenden Eigenschaften:

panel

string oder null. Das zu ladende Panel in der Seitenleiste, angegeben als URL, die auf ein HTML-Dokument verweist, oder null oder ein leerer String.

Dies kann auf eine Datei innerhalb der Erweiterung verweisen (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 eingestelltes Panel entfernt, so dass:

  • Wenn tabId angegeben ist und der Tab ein Tab-spezifisches Panel hat, dann übernimmt der Tab das Panel von dem Fenster, zu dem es gehört.
  • Wenn windowId angegeben ist und das Fenster ein Fenster-spezifisches Panel hat, übernimmt das Fenster das globale Panel.
  • Andernfalls wird das globale Panel auf das Manifest-Panel zurückgesetzt.
tabId Optional

integer. Legt das Panel nur für den angegebenen Tab fest.

windowId Optional

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

  • Wenn windowId und tabId beide angegeben sind, schlägt die Funktion fehl und das Panel wird nicht festgelegt.
  • Wenn windowId und tabId beide weggelassen werden, wird das globale Panel festgelegt.

Beispiele

Dieser Code wechselt das Dokument der Seitenleiste, wenn der Benutzer auf eine Browser-Aktion klickt:

js
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 Operas chrome.sidebarAction API.