Реализация действия

Действие — это то, что происходит, когда пользователь щелкает значок на панели инструментов, обычно называемый значком действия для вашего расширения. Действие вызывает функцию расширения с помощью Action API или открывает всплывающее окно . На этой странице показано, как вызвать функцию расширения. Чтобы использовать всплывающее окно, см. раздел «Добавление всплывающего окна» .

Зарегистрируйте действие

Чтобы использовать API chrome.action , добавьте ключ "action" в файл манифеста расширения. Полное описание необязательных свойств этого поля см. в разделе манифеста справочника по API chrome.action .

манифест.json:

{
  "name": "My Awesome action Extension",
 ...
  "action": {
   ...
  }
 ...
}

Реагируйте на действие

Зарегистрируйте обработчик onClicked , когда пользователь щелкает значок действия. Это событие не запускается, если всплывающее окно зарегистрировано в файле манифеста.json.

сервис-worker.js:

chrome.action.onClicked.addListener((tab) => {
  chrome.action.setTitle({
    tabId: tab.id,
    title: `You are on tab: ${tab.id}`});
});

Активировать действие условно

API chrome.declarativeContent позволяет включить значок действия расширения на основе URL-адреса страницы или когда селекторы CSS соответствуют элементам на странице. Когда значок действия расширения отключен, он становится серым. Если пользователь щелкнет отключенный значок, появится контекстное меню расширения.

Значок отключенного действия
Значок отключенного действия.

Значок действия

Значки — это фрагменты форматированного текста, размещаемые поверх значка действия для обозначения таких вещей, как состояние расширения или действия, необходимые пользователю. Чтобы продемонстрировать это, в образце « Питьевая вода » отображается значок «ВКЛ», показывающий пользователю, что он успешно установил будильник, и ничего не отображается, когда расширение не используется. Бейджи могут содержать до четырех символов.

Значок расширения без значка и со значком.
Значок расширения без значка (слева) и со значком (справа).

Установите текст значка, вызвав chrome.action.setBadgeText() , а цвет фона, вызвав chrome.action.setBadgeBackgroundColor() ` .

сервис-worker.js:

chrome.action.setBadgeText({text: 'ON'});
chrome.action.setBadgeBackgroundColor({color: '#4688F1'});

Подсказка

Зарегистрируйте всплывающие подсказки в поле "default_title" под клавишей "action" в файле Manifest.json.

манифест.json:

{
  "name": "Tab Flipper",
 ...
  "action": {
    "default_title": "Press Ctrl(Win)/Command(Mac)+Shift+Right/Left to flip tabs"
  }
...
}

Вы также можете установить или обновить всплывающие подсказки, вызвав action.setTitle() ` . Если подсказка не задана, отображается имя расширения.