sidebarAction.setIcon()
Устанавливает значок для боковой панели.
Вы можете указать один значок, как путь к файлу изображения или объект sidebarAction.ImageDataType.
Вы можете указать несколько значков разных размеров, передав словарь, содержащий несколько путей или объекты ImageData. Это означает, что значок не нужно масштабировать для устройства с другой плотностью пикселей.
Это асинхронная функция, которая возвращает Promise.
Типы значков
Ваше расширение должно указать значок для боковой панели в ключе sidebar_action манифеста. Это называется "значком манифеста".
Если вы не укажете значок в ключе sidebar_action, вы получите значок по умолчанию браузера. Это называется "значком по умолчанию".
Если вы установите новый значок с помощью setIcon(), и включите опцию tabId, то значок будет установлен только для данного вкладки. Этот значок называется "значком, специфичным для вкладки".
Если вы установите новый значок с помощью setIcon(), и включите опцию windowId, то значок будет установлен только для данного окна. Этот значок называется "значком, специфичным для окна", и будет отображаться во всех вкладках этого окна, которые не имеют значка, специфичного для вкладки.
Если вы установите новый значок с помощью setIcon(), и опустите обе опции tabId и windowId, то это установит "глобальный значок". Глобальный значок будет отображаться во всех вкладках, которые не имеют значка, специфичного для вкладки, и в окнах, которые не имеют значка, специфичного для окна.
Синтаксис
let settingIcon = browser.sidebarAction.setIcon( details // object )
Параметры
details-
object. Объект со следующими свойствами:-
imageDataНеобязательно -
илиsidebarAction.ImageDataTypeobject. Это либо одиночный объектImageData, либо объект-словарь.Используйте объект-словарь, чтобы указать несколько объектов
ImageDataразных размеров, чтобы значок не нужно было масштабировать для устройства с другой плотностью пикселей. ЕслиimageData— словарь, значение каждого свойства — объектImageData, а имя — его размер, например:{ 16: image16, 32: image32 }
Браузер выберет изображение в зависимости от плотности пикселей экрана. Дополнительную информацию об этом см. в разделе Выбор размеров значков.
-
pathНеобязательно -
stringилиobject. Это либо относительный путь к файлу значка, либо объект-словарь.Используйте объект-словарь, чтобы указать несколько файлов значков разных размеров, чтобы значок не нужно было масштабировать для устройства с другой плотностью пикселей. Если
path— словарь, значение каждого свойства — относительный путь, а имя — его размер, например:{ 16: "path/to/image16.jpg", 32: "path/to/image32.jpg" }
Браузер выберет изображение в зависимости от плотности пикселей экрана. Дополнительную информацию об этом см. в разделе Выбор размеров значков.
Если
pathпустая строка, браузер использует значок по умолчанию.Если
pathне пустая, но не указывает на файл значка, значок скрыт.Если
pathпустая строка иtabIdбыл указан, и указанная вкладка имела установленный значок, специфичный для вкладки: значок, специфичный для вкладки, сбрасывается до глобального значка (если установлен глобальный значок) или до значка манифеста.Если
pathпустая строка иtabIdбыл опущен, а был установлен глобальный значок, он сбрасывается до значка манифеста. -
tabIdНеобязательно -
integer. Устанавливает значок только для данной вкладки. -
windowIdНеобязательно -
integer. Устанавливает значок только для данного окна.
-
- Если
windowIdиtabIdоба указаны, функция завершается ошибкой, и значок не устанавливается. - Если
windowIdиtabIdоба опущены, значок устанавливается глобально.
Возвращаемое значение
A Promise, который будет выполнен без аргументов, как только значок будет установлен.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
setIcon |
Нет | Нет | 54 | ? | 30 | Нет | ? | ? | Нет | ? | Нет | ? |
null |
Нет | Нет | 59 | ? | Нет | Нет | ? | ? | Нет | ? | Нет | ? |
Примеры
Код ниже переключает значок боковой панели для активной вкладки, когда пользователь нажимает на действие браузера:
let on = false; function toggle(tab) { if (on) { browser.sidebarAction.setIcon({ path: "off.svg", tabId: tab.id }); on = false; } else { browser.sidebarAction.setIcon({ path: "on.svg", tabId: tab.id }); on = true; } } browser.browserAction.onClicked.addListener(toggle);
Примечание: Этот 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/setIcon