Я сделал действие браузера, но я просто попробовал проверить действие страницы. Кнопка помещается в одно и то же место, но кнопка действия страницы не может быть нажата (значок выделен серым цветом). Я думал, кнопки кнопки страницы были расположены в адресной строке, а не на панели инструментов. Почему он находится в одном месте?
Каковы различия между действиями страницы и действиями браузера?
Ответ 1
Кнопки "Действие браузера" и "Действие страницы" расположены "справа от адресной строки", как описано в документации к Extension API. Кнопки двух типов имеют много общего. Какой из них использовать, во многом зависит от того, предназначено ли ваше расширение для использования в большинстве случаев или только для небольшого подмножества страниц.
Кнопки действий браузера предназначены для использования, когда ваше расширение можно использовать большую часть времени или на большинстве страниц. Они также позволяют вам предоставлять некоторую сразу видимую информацию о статусе пользователю, имея значок, содержащий пару/несколько символов над значком, и изменяя цвет фона, используемого для этого значка.
Кнопки действия страницы предназначены для использования, когда ваше расширение часто/обычно недоступно для использования. Например, если его можно использовать только на нескольких доменах или URL-адресах.
Кнопки действий браузера
Кнопки действий браузера следует использовать, когда ваша кнопка действительна для использования в большинстве случаев, либо на большинстве страниц, либо не связана с/зависит от страницы, отображаемой на активной вкладке. По умолчанию кнопки действий браузера включены на всех вкладках/URL-адресах. Вы должны вызвать browserAction.disable()
чтобы отключить кнопку на каждой вкладке, где вы хотите ее отключить (или вообще отключить на всех вкладках). Кнопка действия браузера не изменяет состояние включения/выключения, когда на вкладке отображается другой URL-адрес.
Страница кнопки действий браузера Chrome гласит:
Используйте действия браузера для размещения значков на главной панели инструментов Google Chrome, справа от адресной строки. В дополнение к его значку, действие браузера также может иметь всплывающую подсказку, значок и всплывающее окно.
- Используют ли действия браузера для функций, которые имеют смысл на большинстве страниц.
- Не используйте действия браузера для функций, которые имеют смысл только для нескольких страниц. Вместо этого используйте действия на странице.
- Используют большие, красочные иконки, которые делают большую часть 16x16 цинкования пространства. Значки действий в браузере должны казаться немного больше и тяжелее, чем значки действий на странице.
- Не пытайтесь имитировать монохромный значок меню Google Chrome. Это не очень хорошо работает с темами, и в любом случае расширения должны немного выделяться.
- Как использовать альфа - прозрачность, чтобы добавить мягкие края на свой значок. Поскольку многие люди используют темы, ваш значок должен хорошо выглядеть на различных цветах фона.
- Не постоянно анимируйте свою иконку. Это просто раздражает.
Действия браузера имеют следующие API:
- Типы
- методы
- отключить -
browserAction.disable(integer tabId)
- enable -
browserAction.enable(integer tabId)
- getBadgeBackgroundColor -
browserAction.getBadgeBackgroundColor(object details, function callback)
- getBadgeText -
browserAction.getBadgeText(object details, function callback)
- getPopup 1 -
browserAction.getPopup(object details, function callback)
- getTitle 1 -
browserAction.getTitle(object details, function callback)
- setBadgeBackgroundColor -
browserAction.setBadgeBackgroundColor(object details)
- setBadgeText -
browserAction.setBadgeText(object details)
- setIcon 1 -
browserAction.setIcon(object details, function callback)
- setPopup 1 -
browserAction.setPopup(object details)
- setTitle 1 -
browserAction.setTitle(object details)
- отключить -
- События
Кнопки действий страницы
Кнопки действия страницы следует использовать, когда возможность использования вашей кнопки расширения зависит от URL-адреса, отображаемого на активной вкладке, и когда он обычно недоступен для использования (т.е. Используется только при определенных условиях или на некоторых URL-адресах). По умолчанию кнопки действий страницы отключены/недоступны ("скрыты") для всех URL-адресов. Вы должны вызвать pageAction.show()
чтобы активировать кнопку для каждого URL/вкладки, для которой вы хотите ее включить. Кнопка действия страницы автоматически становится отключенной/скрытой, если на вкладке отображается другой URL-адрес.
Страница кнопки действий Chrome page говорит (некоторые акценты мои):
Используйте API
chrome.pageAction
для размещения значков на главной панели инструментов Google Chrome, справа от адресной строки. Действия страницы представляют собой действия, которые можно выполнить на текущей странице, но которые применимы не ко всем страницам. Действия страницы отображаются серым цветом, когда они неактивны.
Как и действия браузера, действия на странице могут иметь значок, всплывающую подсказку и всплывающее окно; у них не может быть значков, как бы то ни было. Кроме того, действия на странице могут быть недоступны. Вы можете найти информацию о значках, всплывающих подсказках и всплывающих окнах, прочитав об интерфейсе действий браузера.
Вы заставляете действие страницы появляться и быть серым, используя методы pageAction.show и pageAction.hide соответственно. По умолчанию действие страницы отображается серым цветом. Когда вы показываете это, вы указываете вкладку, на которой должен появиться значок. Значок остается видимым до тех пор, пока вкладка не будет закрыта или не начнет отображаться другой URL-адрес (например, если пользователь щелкает ссылку).
- Используйте действия на странице для функций, которые имеют смысл только для нескольких страниц.
- Не используйте действия страницы для функций, которые имеют смысл для большинства страниц. Вместо этого используйте действия браузера.
- Не постоянно анимируйте свою иконку. Это просто раздражает.
Действия страницы имеют следующие API:
- Типы
- методы
- getPopup 1 -
pageAction.getPopup(object details, function callback)
- getTitle 1 -
pageAction.getTitle(object details, function callback)
- скрыть -
chrome.pageAction.hide(integer tabId)
- setIcon 1 -
pageAction.setIcon(object details, function callback)
- setPopup 1 -
pageAction.setPopup(object details)
- setTitle 1 -
pageAction.setTitle(object details)
- show -
pageAction.show(integer tabId)
- getPopup 1 -
- События
1. Этот API доступен как для действий браузера, так и для действий на странице.Это делает в основном то же самое на обоих.