Spec-Zone.ru › Web Extensions

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.ImageDataType или object. Это либо одиночный объект 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

Spec-Zone.ru

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