среда, 19 февраля 2014 г.

Page Actions

Внешне не так уж сильно отличается от Browser Actions.

image

Иконка расширения помещается не на панель инструментов, а в адресную строку. И выводится не на кадой вкладке, а только там где, в данном случае, обнаружен 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 )



Свойства 



  • tabId (integer) идентификатор вкладки
callback  (function) функция вида function(string result) {...}, через которую возвращается результат

События


onClicked


Возникает когда нажата иконка page action. Не возникает если назначено всплывающее окно.


addListener


Добавляет обработчик события
chrome.pageAction.onClicked.addListener(function callback)
Параметры
callback  (function) функция вида function( tabs.Tab tab) {...}. Вызывается при возникновении события

1 комментарий:

  1. подскажите, можно ли вызвать popup без клика по иконке?

    ОтветитьУдалить