sidebarAction.setPanel()
Устанавливает панель сайдбара: т. е. HTML-документ, определяющий содержимое этого сайдбара.
Типы панелей
Сайдбары всегда имеют «панель манифеста», которая определяется в ключе sidebar_action манифеста.
Если вы устанавливаете новую панель с помощью setPanel(), и включаете опцию tabId, то панель устанавливается только для данного вкладки. Эта панель называется «панель, специфичная для вкладки».
Если вы устанавливаете новую панель с помощью setPanel(), и включаете опцию windowId, то панель устанавливается только для данного окна. Эта панель называется «панель, специфичная для окна» и будет отображаться во всех вкладках этого окна, для которых не установлена панель, специфичная для вкладки.
Если вы устанавливаете новую панель с помощью setPanel(), и опускаете обе опции tabId и windowId, то это устанавливает «глобальную панель». Глобальная панель будет отображаться во всех вкладках, для которых не установлена панель, специфичная для вкладки, и для которых в окне не установлена панель, специфичная для окна.
Синтаксис
browser.sidebarAction.setPanel( details // object )
Параметры
details-
object. Объект со следующими свойствами:panel-
stringилиnull. Панель для загрузки в сайдбар, задаваемая в виде URL-адреса HTML-документа, илиnull, или пустая строка.Этот параметр может указывать на файл, упакованный внутри расширения (например, созданный с помощью
runtime.getURL), или на удалённый документ (например,https://example.org/). Это должен быть действительный URL-адрес.Если
panelравноnullили"", то ранее установленная панель будет удалена, так что:- Если указан
tabId, и у вкладки установлена панель, специфичная для вкладки, то вкладка унаследует панель от окна, к которому она принадлежит. - Если указан
windowId, и у окна установлена панель, специфичная для окна, то окно унаследует глобальную панель. - В противном случае глобальная панель будет сброшена до панели манифеста.
- Если указан
-
tabIdНеобязательно -
integer. Устанавливает панель только для данной вкладки. -
windowIdНеобязательно -
integer. Устанавливает панель только для данного окна.
- Если
windowIdиtabIdуказаны одновременно, функция завершается неудачей, и панель не устанавливается. - Если
windowIdиtabIdоба пропущены, устанавливается глобальная панель.
Примеры
Этот код переключает документ сайдбара при нажатии пользователем на действие браузерного расширения:
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); });
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
setPanel |
Нет | Нет | 54 | ? | 30 | Нет | ? | ? | Нет | ? | Нет | ? |
null |
Нет | Нет | 59 | ? | Нет | Нет | ? | ? | Нет | ? | Нет | ? |
Примечание: Этот API основан на API сайдбара расширений Opera chrome.sidebarAction.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction/setPanel