chrome.pageAction

refresh date: 2026-09-25 robots: noindex

Описание

Используйте chrome.pageAction API, чтобы разместить значки на главной панели инструментов Google Chrome справа от адресной строки. Действия на странице – это действия, которые можно выполнить на текущей странице, но которые не применимы ко всем страницам. Неактивные действия на странице выделены серым цветом.

Доступность

≤ MV2

Ниже приведено несколько примеров.

  • Подписаться на RSS-фид этой страницы
  • Создать слайд-шоу из фотографий на этой странице

Значок RSS на скриншоте ниже представляет собой действие на странице, которое позволяет подписаться на RSS-фид для текущей страницы.

Скрытые действия на странице выделены серым цветом. Например, на скриншоте ниже значок RSS-фида неактивен, поскольку на фид текущей страницы подписаться нельзя.

Рекомендуем использовать действие браузера, чтобы пользователи могли взаимодействовать с расширением.

Манифест

Зарегистрируйте действие на странице в манифесте расширения следующим образом:

{
  "name": "My extension",
  ...
  "page_action": {
    "default_icon": {                    // optional
      "16": "images/icon16.png",           // optional
      "24": "images/icon24.png",           // optional
      "32": "images/icon32.png"            // optional
    },
    "default_title": "Google Mail",      // optional; shown in tooltip
    "default_popup": "popup.html"        // optional
  },
  ...
}

Поскольку устройства с менее распространенными коэффициентами масштабирования, такими как 1,5x или 1,2x, становятся все более популярными, мы рекомендуем предоставлять значки нескольких размеров. Chrome выберет наиболее подходящий размер и масштабирует его до 16 dip. Это также гарантирует, что если размер отображения значка когда-либо изменится, вам не нужно будет выполнять дополнительную работу по предоставлению других значков. Однако, если разница в размерах слишком велика, это масштабирование может привести к потере деталей или размытости значка.

Старый синтаксис для регистрации значка по умолчанию по-прежнему поддерживается:

{
  "name": "My extension",
  ...
  "page_action": {
    ...
    "default_icon": "images/icon32.png"  // optional
    // equivalent to "default_icon": { "32": "images/icon32.png" }
  },
  ...
}

Элементы интерфейса

Как и действия браузера, действия страницы могут иметь значок, подсказку и всплывающее окно, но не могут иметь значков. Кроме того, действия на странице могут быть неактивны. Информацию о значках, подсказках и всплывающих окнах можно найти в статье Интерфейс действий браузера.

Чтобы сделать действие на странице видимым или неактивным, используйте методы pageAction.show и pageAction.hide соответственно. По умолчанию значок действия на странице неактивен. При показе значка вы указываете вкладку, на которой он должен появиться. Значок остается видимым, пока вкладка не будет закрыта или пока в ней не будет открыт другой URL (например, если пользователь нажмет на ссылку).

Советы

Чтобы добиться наилучшего визуального эффекта, следуйте этим рекомендациям:

  • Рекомендуется использовать действия на странице для функций, которые нужны только на некоторых страницах.
  • Не используйте действия на странице для функций, которые подходят для большинства страниц. Вместо этого используйте действия браузера.
  • Не используйте постоянно анимированные значки. Это просто раздражает.

Типы

ImageDataType

Данные пикселей для изображения. Должен быть объектом ImageData (например, из элемента canvas).

Тип

ImageData

TabDetails

Chrome 88 и более поздних версий;

Свойства

  • tabId

    number (необязательно)

    Идентификатор вкладки, состояние которой нужно запросить. Если вкладка не указана, возвращается состояние, не связанное с вкладкой.

Методы

getPopup()

Promise
chrome.pageAction.getPopup(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

Возвращает HTML-документ, заданный в качестве всплывающего окна для этого действия на странице.

Параметры

  • подробные сведения
  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: string) => void

    • Результат

      string

Возвраты

  • Promise<string>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getTitle()

Promise
chrome.pageAction.getTitle(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

Возвращает заголовок действия на странице.

Параметры

  • подробные сведения
  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result: string) => void

    • Результат

      string

Возвраты

  • Promise<string>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

hide()

Promise
chrome.pageAction.hide(
  tabId: number,
  callback?: function,
)
: Promise<void>

Скрывает действие на странице. Скрытые действия на странице по-прежнему отображаются на панели инструментов Chrome, но выделены серым цветом.

Параметры

  • tabId

    число

    Идентификатор вкладки, для которой нужно изменить действие на странице.

  • обратный вызов

    function необязательно

    Chrome 67 и более поздних версий

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setIcon()

Promise
chrome.pageAction.setIcon(
  details: object,
  callback?: function,
)
: Promise<void>

Задает значок для действия на странице. Значок можно указать как путь к графическому файлу, как данные пикселей из элемента canvas или как словарь, содержащий один из этих вариантов. Необходимо указать свойство path или imageData.

Параметры

  • подробные сведения

    Объект

    • iconIndex

      number (необязательно)

      Поддержка прекращена. Этот аргумент игнорируется.

    • imageData

      ImageData | объект необязательный

      Объект ImageData или словарь {size -> ImageData}, представляющий значок, который нужно установить. Если значок задан в виде словаря, то изображение выбирается в зависимости от плотности пикселей экрана. Если количество пикселей изображения, помещающихся в одну единицу пространства экрана, равно scale, то будет выбрано изображение размером scale * n, где n – размер значка в интерфейсе. Необходимо указать хотя бы одно изображение. Обратите внимание, что details.imageData = foo эквивалентно details.imageData = {'16': foo}.

    • путь

      string | object необязательный

      Относительный путь к изображению или словарь {size -> relative image path}, указывающий на значок, который нужно установить. Если значок задан в виде словаря, то изображение выбирается в зависимости от плотности пикселей экрана. Если количество пикселей изображения, помещающихся в одну единицу пространства экрана, равно scale, то будет выбрано изображение размером scale * n, где n – размер значка в интерфейсе. Необходимо указать хотя бы одно изображение. Обратите внимание, что details.path = foo эквивалентно details.path = {'16': foo}.

    • tabId

      число

      Идентификатор вкладки, для которой нужно изменить действие на странице.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setPopup()

Promise
chrome.pageAction.setPopup(
  details: object,
  callback?: function,
)
: Promise<void>

Указывает, что HTML-документ должен открываться во всплывающем окне, когда пользователь нажимает на значок действия на странице.

Параметры

  • подробные сведения

    Объект

    • всплывающее окно

      string

      Относительный путь к HTML-файлу, который будет показан во всплывающем окне. Если задана пустая строка (''), всплывающее окно не показывается.

    • tabId

      число

      Идентификатор вкладки, для которой нужно изменить действие на странице.

  • обратный вызов

    function необязательно

    Chrome 67 и более поздних версий

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setTitle()

Promise
chrome.pageAction.setTitle(
  details: object,
  callback?: function,
)
: Promise<void>

Задает название действия на странице. Оно показывается в подсказке над действием на странице.

Параметры

  • подробные сведения

    Объект

    • tabId

      число

      Идентификатор вкладки, для которой нужно изменить действие на странице.

    • название

      string

      Строка подсказки.

  • обратный вызов

    function необязательно

    Chrome 67 и более поздних версий

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

show()

Promise
chrome.pageAction.show(
  tabId: number,
  callback?: function,
)
: Promise<void>

Показывает действие на странице. Действие на странице показывается, когда выбрана вкладка.

Параметры

  • tabId

    число

    Идентификатор вкладки, для которой нужно изменить действие на странице.

  • обратный вызов

    function необязательно

    Chrome 67 и более поздних версий

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 101 и более поздних версий.

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

События

onClicked

chrome.pageAction.onClicked.addListener(
  callback: function,
)

Срабатывает при нажатии на значок действия на странице. Это событие не будет активировано, если у действия на странице есть всплывающее окно.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (tab: tabs.Tab) => void