sidebarAction.setPanel()
Sets the sidebar's panel: that is, the HTML document that defines the content of this sidebar.
In this article
Types of panel
Sidebars always have a"manifest panel", which is the panel defined in thesidebar_action manifest key.
If you set a new panel usingsetPanel(), and include thetabId option, then the panel is set only for the given tab. This panel is referred to as the"tab-specific panel".
If you set a new panel usingsetPanel(), and include thewindowId option, then the panel is set only for the given window. This panel is referred to as the"window-specific panel", and will appear in all tabs of that window that do not have a tab-specific panel set.
If you set a new panel usingsetPanel(), and omit both thetabId andwindowId options, then this sets the"global panel". The global panel will then appear in all tabs that do not have a tab-specific panel set and whose window does not have a window-specific panel.
Syntax
browser.sidebarAction.setPanel( details // object)Parameters
detailsobject. An object with the following properties:panelstringornull. The panel to load into the sidebar, specified as a URL pointing to an HTML document, ornull, or an empty string.This can point to a file packaged within the extension (for example, created using
runtime.getURL), or a remote document (e.g.,https://example.org/). It must be a valid URL.If
panelisnullor"", then a previously set panel will be removed, so that:- If
tabIdis specified, and the tab has a tab-specific panel set, then the tab will inherit the panel from the window it belongs to. - If
windowIdis specified, and the window has a window-specific panel set, then the window will inherit the global panel. - Otherwise, the global panel will be reset to the manifest panel.
- If
tabIdOptionalinteger. Sets the panel only for the given tab.windowIdOptionalinteger. Sets the panel only for the given window.
- If
windowIdandtabIdare both specified, the function fails and the panel is not set. - If
windowIdandtabIdare both omitted, the global panel is set.
Examples
This code toggles the sidebar document when the user clicks a browser action:
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 compatibility
Note:This API is based on Opera'schrome.sidebarAction API.