Внешне не так уж сильно отличается от Browser Actions.
Иконка расширения помещается не на панель инструментов, а в адресную строку. И выводится не на кадой вкладке, а только там где, в данном случае, обнаружен RSS. Вот и все.
Давайте копнем глубже:
Манифест
{
"name": "My extension",
...
"page_action": {
"default_icon": { // optional
"19": "images/icon19.png", // optional
"38": "images/icon38.png" // optional
},
"default_title": "Google Mail", // optional; shown in tooltip
"default_popup": "popup.html" // optional
},
...
}
Точно также задается иконка, всплывающее окно и подсказка.
Отличия
- у них нет бэджей
- кнопка по умолчанию не показывается. Чтобы она появилась ее нужно явно показать методом show
- вместо методов enable/disable – show/hide.
Справочник по chrome.pageAction
Типы
ImageDataType
Объект ImageData object
Методы
show
chrome.pageAction.show(integer tabId)
Показывает иконку на указанной вкладке
Параметры
tabId (integer) Идентификатор вкладки
hide
chrome.pageAction.hide(integer tabId)
Скрывает иконку на указанной вкладке
Параметры
tabId (integer) Идентификатор вкладки
setTitle
chrome.pageAction.setTitle(object details)
Устанавливает всплывающую подсказку к иконке
Параметры
details (object)
tabId (integer) Идентификатор вкладки
title (string) Строка подсказки
getTitle
chrome.pageAction.getTitle(object details, function callback)
Получает всплывающую подсказку к иконке
Параметры
details (object)
tabId (integer) Идентификатор вкладки
callback (function) функция вида function(string result) {...}, через которую возвращается результат
setIcon
chrome.pageAction.setIcon(object details, function callback)
Устанавливает новую иконку. Иконка м.б. указана как путь к файлу, либо как объект ImageData.
Параметры
details (object)
Свойства
- tabId (integer) Идентификатор вкладки
- imageData(опционально, ImageDataType или object) ImageData или словарь {размер -> ImageData}
- path ( опционально, string или object ) путь к файлу с картинкой или словарь {размер -> путь}
callback (function) функция вида function() {...}, вызывается когда операция завершена
setPopup
chrome.pageAction.setPopup(object details)
Устанавливает html файл, который будет открываться как всплывающее окно, когда пользователь кликнет по иконке.
Параметры
details (object)
Свойства
- tabId (integer) идентификатор вкладки
- popup (string) путь к файлу. Пустая строка – значит нет всплывающего окна.
getPopup
chrome.pageAction.getPopup(object details, function callback)
Возвращает путь к файлу всплывающего окна.
Параметры
details ( object )
callback (function) функция вида function(string result) {...}, через которую возвращается результатСвойства
- tabId (integer) идентификатор вкладки
События
onClicked
Возникает когда нажата иконка page action. Не возникает если назначено всплывающее окно.
addListener
Добавляет обработчик события
chrome.pageAction.onClicked.addListener(function callback)
Параметры
callback (function) функция вида function( tabs.Tab tab) {...}. Вызывается при возникновении события
подскажите, можно ли вызвать popup без клика по иконке?
ОтветитьУдалить