Spec-Zone.ru › Web Extensions

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API