--- title: Кнопка в панели инструментов slug: Mozilla/Add-ons/WebExtensions/user_interface/Browser_action tags: - Кнопка панели инструментов translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Browser_action ---
Кнопка на панели инструментов браузера (оригинальное название browser action) - это иконка, которую можно вывести в панель инструментов. Пользователь взаимодействует с расширением нажимая на нее как на кнопку.
Кнопка на панели инструментов одинаково отображается для любой открытой вкладки. Это предполагает, что расширение единообразно работает со всеми страницами.
Например, предустановленная кнопка "обновить" перезагружает любую страницу в активной вкладке, кнопка "добавить в избранное" добавляет любой адрес активной вкладки в список избранного. Кнопка загрузок показывает единый для всего браузера список скачанных файлов, независимо от того что за страница открыта в активной вкладке.
Применимые лишь к определенным страницам кнопки следует реализовывать с помощью кнопки в адресной строке (page action).
За кнопку на панели инструментов отвечает свойство манифеста browser_action
:
"browser_action": {
"default_icon": {
"19": "button/geo-19.png",
"38": "button/geo-38.png"
},
"default_title": "Whereami?"
}
Свойство кнопки default_icon
обязательно, оно определяет внешний вид кнопки - иконку, которая окажется на панели инструментов.
Расширение может иметь только одну кнопку для панели инструментов.
Возможны два способа реакции на нажатие кнопки: отображение всплывающего окна (описано в отдельном разделе) или отправка события в background script расширения. В таком случае реакция на нажатие обеспечивают обработчики событий, подключенные к browserAction.onClicked
:
browser.browserAction.onClicked.addListener(handleClick);
Если же указать в качестве реакции на нажатие всплывающее окно, то событие передано не будет. Вместо этого около кнопки отобразится всплывающее окно - отдельная маленькая страница, дальнейшее взаимодействие с пользователем берет на себя она. Подробнее этот сценарий описан на отдельной странице, посвященной всплывающим окнам.
Все свойства кнопки на панели инструментов можно изменить программно через API browserAction
.
В GitHub репозитории webextensions-examples представлены несколько примеров расширений, которые создают кнопку на панели инструментов: