chrome.tabs

Описание

Используйте API chrome.tabs для взаимодействия с системой вкладок браузера. С помощью этого API можно создавать, изменять и переупорядочивать вкладки в браузере.

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

Разрешения

Для использования большинства функций не требуется никаких разрешений. Например, создание новой вкладки, перезагрузка вкладки, переход по другому URL-адресу и т. д.

При работе с API вкладок разработчикам следует учитывать три разрешения.

Разрешение «вкладки»

Это разрешение не предоставляет доступ к пространству имён chrome.tabs . Вместо этого оно предоставляет расширению возможность вызывать tabs.query() для четырёх конфиденциальных свойств экземпляров tabs.Tab : url , pendingUrl , title и favIconUrl .

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}
Разрешения хоста

Разрешения хоста позволяют расширению читать и запрашивать четыре конфиденциальных свойства tabs.Tab соответствующей вкладки. Расширение также может напрямую взаимодействовать с соответствующими вкладками, используя такие методы, как tabs.captureVisibleTab() , scripting.executeScript() , scripting.insertCSS() и scripting.removeCSS() .

{
  "name": "My extension",
  ...
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  ...
}
Разрешение «activeTab»

activeTab предоставляет расширению временное разрешение хоста для текущей вкладки в ответ на вызов пользователя. В отличие от разрешений хоста, activeTab не выдаёт никаких предупреждений.

{
  "name": "My extension",
  ...
  "permissions": [
    "activeTab"
  ],
  ...
}

Варианты использования

В следующих разделах показаны некоторые распространенные варианты использования.

Открыть страницу расширения в новой вкладке

Распространенный шаблон для расширений — открытие страницы знакомства в новой вкладке после установки расширения. Следующий пример показывает, как это сделать.

фон.js:

chrome.runtime.onInstalled.addListener(({reason}) => {
  if (reason === 'install') {
    chrome.tabs.create({
      url: "onboarding.html"
    });
  }
});

Получить текущую вкладку

В этом примере показано, как сервис-воркер расширения может получить активную вкладку из текущего окна, находящегося в фокусе (или из последнего окна, находившегося в фокусе, если в фокусе нет окон Chrome). Обычно это текущая вкладка пользователя.

  async function getCurrentTab() {
    let queryOptions = { active: true, lastFocusedWindow: true };
    // `tab` will either be a `tabs.Tab` instance or `undefined`.
    let [tab] = await chrome.tabs.query(queryOptions);
    return tab;
  }

  function getCurrentTab(callback) {
    let queryOptions = { active: true, lastFocusedWindow: true };
    chrome.tabs.query(queryOptions, ([tab]) => {
      if (chrome.runtime.lastError)
      console.error(chrome.runtime.lastError);
      // `tab` will either be a `tabs.Tab` instance or `undefined`.
      callback(tab);
    });
  }

Отключить указанную вкладку

В этом примере показано, как расширение может отключить звук для определенной вкладки.

  async function toggleMuteState(tabId) {
    const tab = await chrome.tabs.get(tabId);
    const muted = !tab.mutedInfo.muted;
    await chrome.tabs.update(tabId, {muted});
    console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
  }

  function toggleMuteState(tabId) {
    chrome.tabs.get(tabId, async (tab) => {
      let muted = !tab.mutedInfo.muted;
      await chrome.tabs.update(tabId, { muted });
      console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
    });
  }

При щелчке переместить текущую вкладку на первую позицию

В этом примере показано, как переместить вкладку во время перетаскивания. Хотя в этом примере используется chrome.tabs.move , вы можете использовать тот же шаблон ожидания для других вызовов, которые изменяют вкладки во время перетаскивания.

  chrome.tabs.onActivated.addListener(moveToFirstPosition);

  async function moveToFirstPosition(activeInfo) {
    try {
      await chrome.tabs.move(activeInfo.tabId, {index: 0});
      console.log("Success.");
    } catch (error) {
      if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
        setTimeout(() => moveToFirstPosition(activeInfo), 50);
      } else {
        console.error(error);
      }
    }
  }

  chrome.tabs.onActivated.addListener(moveToFirstPositionMV2);

  function moveToFirstPositionMV2(activeInfo) {
    chrome.tabs.move(activeInfo.tabId, { index: 0 }, () => {
      if (chrome.runtime.lastError) {
        const error = chrome.runtime.lastError;
        if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
          setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
        } else {
          console.error(error);
        }
      } else {
        console.log("Success.");
      }
    });
  }

Передать сообщение в скрипт содержимого выбранной вкладки

В этом примере показано, как сервис-воркер расширения может взаимодействовать со скриптами содержимого на определенных вкладках браузера с помощью tabs.sendMessage() .

function sendMessageToActiveTab(message) {
  const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
  const response = await chrome.tabs.sendMessage(tab.id, message);
  // TODO: Do something with the response.
}

Примеры расширений

Для дополнительных демонстраций расширений API вкладок ознакомьтесь с любым из следующих источников:

Типы

MutedInfo

Хром 46+

Состояние отключения звука вкладки и причина последнего изменения состояния.

Характеристики

  • extensionId

    строка необязательная

    Идентификатор расширения, изменившего состояние отключения звука. Не устанавливается, если расширение не было причиной последнего изменения состояния отключения звука.

  • приглушенный

    булев

    Отключен ли звук на вкладке (запрещено ли воспроизведение звука). Вкладка может быть отключена, даже если звук не воспроизводится или не воспроизводится в данный момент. Аналогично отображению индикатора «Звук отключен».

  • причина

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

    Причина отключения или включения звука на вкладке. Не устанавливается, если состояние отключения звука на вкладке никогда не менялось.

MutedInfoReason

Хром 46+

Событие, вызвавшее изменение состояния звука.

Перечисление

"пользователь"
Действие пользовательского ввода устанавливает отключенное состояние.

"захватывать"
Был запущен захват вкладки, что привело к принудительному изменению состояния звука.

"расширение"
Расширение, идентифицированное полем extensionId, устанавливает отключенное состояние.

Tab

Характеристики

  • активный

    булев

    Активна ли вкладка в своём окне. Это не обязательно означает, что окно находится в фокусе.

  • слышимый

    логическое необязательное

    Хром 45+

    Издавал ли вкладка звук за последние несколько секунд (но он может быть не слышен, если звук отключен). Аналогично тому, отображается ли индикатор «Аудио динамика».

  • autoDiscardable

    булев

    Хром 54+

    Может ли браузер автоматически закрывать вкладку при недостатке ресурсов.

  • выброшен

    булев

    Хром 54+

    Удалённая вкладка. Удалённая вкладка — это вкладка, содержимое которой было выгружено из памяти, но всё ещё отображается на панели вкладок. Её содержимое будет загружено заново при следующей активации.

  • favIconUrl

    строка необязательная

    URL-адрес значка вкладки. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs" или разрешение на размещение страницы на хосте. Также может быть пустой строкой, если вкладка загружается.

  • замороженный

    булев

    Хром 132+

    Заморожена ли вкладка. Замороженная вкладка не может выполнять задачи, включая обработчики событий и таймеры. Она отображается на панели вкладок, а её содержимое загружается в память. Она размораживается при активации.

  • groupId

    число

    Хром 88+

    Идентификатор группы, к которой принадлежит вкладка.

  • высота

    номер необязательно

    Высота вкладки в пикселях.

  • выделено

    булев

    Выделена ли вкладка.

  • идентификатор

    номер необязательно

    Идентификатор вкладки. Идентификаторы вкладок уникальны в рамках сеанса браузера. В некоторых случаях вкладке может быть не назначен идентификатор, например, при запросе внешних вкладок с помощью API sessions , в этом случае идентификатор сеанса может присутствовать. Для приложений и окон инструментов разработчика идентификатор вкладки также можно задать как chrome.tabs.TAB_ID_NONE .

  • инкогнито

    булев

    Находится ли вкладка в окне в режиме инкогнито.

  • индекс

    число

    Отсчитываемый от нуля индекс вкладки в ее окне.

  • последний доступ

    число

    Хром 121+

    Время последнего момента, когда вкладка стала активной в своем окне, отображается как количество миллисекунд с начала эпохи.

  • mutedInfo

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

    Хром 46+

    Состояние отключения звука вкладки и причина последнего изменения состояния.

  • openerTabId

    номер необязательно

    Идентификатор вкладки, открывшей данную вкладку, если таковая имеется. Это свойство присутствует только в том случае, если открывающая вкладка всё ещё существует.

  • pendingUrl

    строка необязательная

    Хром 79+

    URL-адрес, на который ведет вкладка, до её фиксации. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs" или разрешение хоста для страницы и есть ожидающая навигация.

  • закрепленный

    булев

    Закреплена ли вкладка.

  • выбранный

    булев

    Устаревший

    Пожалуйста, используйте tabs.Tab.highlighted .

    Выбрана ли вкладка.

  • sessionId

    строка необязательная

    Идентификатор сеанса, используемый для уникальной идентификации вкладки, полученной из API sessions .

  • статус

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

    Статус загрузки вкладки.

  • заголовок

    строка необязательная

    Заголовок вкладки. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs" или разрешение на размещение страницы.

  • URL-адрес

    строка необязательная

    Последний зафиксированный URL основного фрейма вкладки. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs" или разрешение хоста для страницы. Может быть пустой строкой, если вкладка ещё не зафиксирована. См. также Tab.pendingUrl .

  • ширина

    номер необязательно

    Ширина вкладки в пикселях.

  • windowId

    число

    Идентификатор окна, содержащего вкладку.

TabStatus

Хром 44+

Статус загрузки вкладки.

Перечисление

"разгруженный"

"загрузка"

"полный"

WindowType

Хром 44+

Тип окна.

Перечисление

"нормальный"

"неожиданно возникнуть"

"панель"

"приложение"

"devtools"

ZoomSettings

Определяет, как и в каком диапазоне обрабатываются изменения масштаба на вкладке.

Характеристики

  • defaultZoomFactor

    номер необязательно

    Хром 43+

    Используется для возврата уровня масштабирования по умолчанию для текущей вкладки при вызовах tabs.getZoomSettings.

  • режим

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

    Определяет, как обрабатываются изменения масштаба, т. е. какая сущность отвечает за фактическое масштабирование страницы; по умолчанию — automatic .

  • объем

    ZoomSettingsScope (опционально)

    Определяет, сохраняются ли изменения масштаба для исходного положения страницы или вступают в силу только для этой вкладки; по умолчанию применяется к per-origin в automatic режиме и per-tab в противном случае.

ZoomSettingsMode

Хром 44+

Определяет, как обрабатываются изменения масштаба, т. е. какая сущность отвечает за фактическое масштабирование страницы; по умолчанию — automatic .

Перечисление

"автоматический"
Изменения масштаба обрабатываются браузером автоматически.

"руководство"
Переопределяет автоматическую обработку изменения масштаба. Событие onZoomChange по-прежнему будет отправляться, и расширение обязано отслеживать это событие и вручную масштабировать страницу. Этот режим не поддерживает масштабирование per-origin , поэтому игнорирует настройку масштабирования scope и предполагает масштабирование per-tab .

"неполноценный"
Отключает масштабирование на вкладке. Вкладка возвращается к уровню масштабирования по умолчанию, и все попытки изменить масштаб игнорируются.

ZoomSettingsScope

Хром 44+

Определяет, сохраняются ли изменения масштаба для исходного положения страницы или вступают в силу только для этой вкладки; по умолчанию применяется к per-origin в automatic режиме и per-tab в противном случае.

Перечисление

"по происхождению"
Изменения масштаба сохраняются в исходной точке увеличенной страницы, то есть все остальные вкладки, переключенные в ту же исходную точку, также масштабируются. Более того, изменения масштаба per-origin сохраняются вместе с исходной точкой, что означает, что при переходе на другие страницы в той же исходной точке все они будут масштабированы с одинаковым коэффициентом масштабирования. Масштабирование per-origin доступно только в automatic режиме.

"на вкладку"
Изменения масштаба применяются только к этой вкладке, а изменения масштаба на других вкладках не влияют на масштаб этой вкладки. Кроме того, изменения масштаба per-tab сбрасываются при навигации; при навигации по вкладке страницы всегда загружаются с коэффициентами масштабирования per-origin .

Характеристики

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

Хром 92+

Максимальное количество вызовов captureVisibleTab в секунду. captureVisibleTab — ресурсоемкая функция, и ее не следует вызывать слишком часто.

Ценить

2

TAB_ID_NONE

Хром 46+

Идентификатор, обозначающий отсутствие вкладки браузера.

Ценить

-1

TAB_INDEX_NONE

Хром 123+

Индекс, представляющий отсутствие индекса табуляции в tab_strip.

Ценить

-1

Методы

captureVisibleTab()

Обещать
chrome.tabs.captureVisibleTab(
  windowId?: number,
  options?: ImageDetails,
  callback?: function,
)

Захватывает видимую область активной вкладки в указанном окне. Для вызова этого метода расширение должно иметь разрешение <all_urls> или разрешение activeTab . Помимо сайтов, к которым расширения обычно имеют доступ, этот метод позволяет расширениям захватывать конфиденциальные сайты, доступ к которым в противном случае ограничен, включая страницы chrome:-scheme, страницы других расширений и URL-адреса data:. Захват этих конфиденциальных сайтов возможен только при наличии разрешения activeTab. URL-адреса файлов могут быть захвачены только в том случае, если расширению предоставлен доступ к файлам.

Параметры

  • windowId

    номер необязательно

    Целевое окно. По умолчанию — текущее окно .

  • параметры

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (dataUrl: string) => void

    • dataUrl

      нить

      URL-адрес данных, кодирующий изображение видимой области захваченной вкладки. Может быть назначен свойству 'src' HTML-элемента img для отображения.

Возврат

  • Обещание<строка>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

connect()

chrome.tabs.connect(
  tabId: number,
  connectInfo?: object,
)

Подключается к скрипту(ам) контента на указанной вкладке. Событие runtime.onConnect вызывается в каждом скрипте контента, запущенном на указанной вкладке для текущего расширения. Подробнее см. в разделе «Сообщения скрипта контента» .

Параметры

  • tabId

    число

  • connectInfo

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

    • documentId

      строка необязательная

      Хром 106+

      Откройте порт для конкретного документа , идентифицированного по documentId , а не для всех фреймов на вкладке.

    • frameId

      номер необязательно

      Откройте порт для конкретного фрейма , идентифицированного по frameId , а не для всех фреймов на вкладке.

    • имя

      строка необязательная

      Передается в onConnect для скриптов содержимого, которые прослушивают событие подключения.

Возврат

  • Порт, который можно использовать для связи со скриптами содержимого, работающими на указанной вкладке. Событие runtime.Port порта срабатывает, если вкладка закрывается или отсутствует.

create()

Обещать
chrome.tabs.create(
  createProperties: object,
  callback?: function,
)

Создает новую вкладку.

Параметры

  • createProperties

    объект

    • активный

      логическое необязательное

      Должна ли вкладка стать активной вкладкой в окне. Не влияет на то, находится ли окно в фокусе (см. windows.update ). Значение по умолчанию — true .

    • индекс

      номер необязательно

      Положение вкладки в окне. Значение ограничено нулем и количеством вкладок в окне.

    • openerTabId

      номер необязательно

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

    • закрепленный

      логическое необязательное

      Нужно ли закреплять вкладку. Значение по умолчанию — false

    • выбранный

      логическое необязательное

      Устаревший

      Пожалуйста, используйте активный .

      Должна ли вкладка стать выбранной вкладкой в окне. Значение по умолчанию — true

    • URL-адрес

      строка необязательная

      URL-адрес для первоначального перехода на вкладку. Полные URL-адреса должны включать схему (например, «http://www.google.com», а не «www.google.com»). Относительные URL-адреса указываются относительно текущей страницы в расширении. По умолчанию используется страница новой вкладки.

    • windowId

      номер необязательно

      Окно, в котором будет создана новая вкладка. По умолчанию — текущее окно .

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tab: Tab) => void

Возврат

  • Обещание< Tab >

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

detectLanguage()

Обещать
chrome.tabs.detectLanguage(
  tabId?: number,
  callback?: function,
)

Определяет основной язык содержимого на вкладке.

Параметры

  • tabId

    номер необязательно

    По умолчанию активная вкладка текущего окна .

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (language: string) => void

    • язык

      нить

      Код языка ISO, например en или fr . Полный список языков, поддерживаемых этим методом, см. в таблице kLanguageInfoTable . Проверяются столбцы со второго по четвёртый, и возвращается первое ненулевое значение, за исключением упрощённого китайского языка, для которого возвращается zh-CN . Для неизвестного/неопределённого языка возвращается und .

Возврат

  • Обещание<строка>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

discard()

Обещание Chrome 54+
chrome.tabs.discard(
  tabId?: number,
  callback?: function,
)

Удаляет вкладку из памяти. Удалённые вкладки остаются на панели вкладок и загружаются заново при активации.

Параметры

  • tabId

    номер необязательно

    Идентификатор вкладки, которую нужно удалить. Если этот параметр указан, вкладка удаляется, если она не активна или уже удалена. Если этот параметр не указан, браузер удаляет наименее важную вкладку. Это может привести к ошибке, если нет вкладок, которые можно удалить.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tab?: Tab) => void

    • вкладка

      Вкладка необязательна

      Отброшенная вкладка, если она была успешно отброшена; в противном случае не определено.

Возврат

  • Обещание< Tab | не определено>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

duplicate()

Обещать
chrome.tabs.duplicate(
  tabId: number,
  callback?: function,
)

Дублирует вкладку.

Параметры

  • tabId

    число

    Идентификатор вкладки, которую нужно дублировать.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tab?: Tab) => void

    • вкладка

      Вкладка необязательна

      Подробная информация о дублированной вкладке. Свойства url , pendingUrl , title и favIconUrl включаются в объект tabs.Tab только в том случае, если расширение имеет разрешение "tabs" или разрешение хоста для страницы.

Возврат

  • Обещание< Tab | не определено>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

get()

Обещать
chrome.tabs.get(
  tabId: number,
  callback?: function,
)

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

Параметры

  • tabId

    число

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tab: Tab) => void

Возврат

  • Обещание< Tab >

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

getCurrent()

Обещать
chrome.tabs.getCurrent(
  callback?: function,
)

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

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tab?: Tab) => void

Возврат

  • Обещание< Tab | не определено>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

getZoom()

Обещать
chrome.tabs.getZoom(
  tabId?: number,
  callback?: function,
)

Получает текущий коэффициент масштабирования указанной вкладки.

Параметры

  • tabId

    номер необязательно

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (zoomFactor: number) => void

    • zoomFactor

      число

      Текущий коэффициент масштабирования вкладки.

Возврат

  • Обещание<номер>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

getZoomSettings()

Обещать
chrome.tabs.getZoomSettings(
  tabId?: number,
  callback?: function,
)

Получает текущие настройки масштабирования указанной вкладки.

Параметры

  • tabId

    номер необязательно

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

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (zoomSettings: ZoomSettings) => void

    • ZoomSettings

      Текущие настройки масштабирования вкладки.

Возврат

  • Обещание< Настройки Zoom >

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

goBack()

Обещание Chrome 72+
chrome.tabs.goBack(
  tabId?: number,
  callback?: function,
)

Вернитесь на предыдущую страницу, если она доступна.

Параметры

  • tabId

    номер необязательно

    Идентификатор вкладки для возврата назад; по умолчанию — выбранная вкладка текущего окна.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

goForward()

Обещание Chrome 72+
chrome.tabs.goForward(
  tabId?: number,
  callback?: function,
)

Перейдите на следующую страницу, если она доступна.

Параметры

  • tabId

    номер необязательно

    Идентификатор вкладки для перехода вперед; по умолчанию — выбранная вкладка текущего окна.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

group()

Обещание Chrome 88+
chrome.tabs.group(
  options: object,
  callback?: function,
)

Добавляет одну или несколько вкладок в указанную группу или, если группа не указана, добавляет указанные вкладки во вновь созданную группу.

Параметры

  • параметры

    объект

    • createProperties

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

      Конфигурации для создания группы. Невозможно использовать, если groupId уже указан.

      • windowId

        номер необязательно

        Окно новой группы. По умолчанию — текущее окно.

    • groupId

      номер необязательно

      Идентификатор группы, в которую нужно добавить вкладки. Если не указан, будет создана новая группа.

    • tabIds

      число | [число, ...число[]]

      Идентификатор вкладки или список идентификаторов вкладок для добавления в указанную группу.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (groupId: number) => void

    • groupId

      число

      Идентификатор группы, в которую были добавлены вкладки.

Возврат

  • Обещание<номер>

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

highlight()

Обещать
chrome.tabs.highlight(
  highlightInfo: object,
  callback?: function,
)

Выделяет указанные вкладки и фокусируется на первой из группы. Не выполняет никаких действий, если указанная вкладка активна.

Параметры

  • highlightInfo

    объект

    • вкладки

      номер | номер[]

      Один или несколько индексов вкладок для выделения.

    • windowId

      номер необязательно

      Окно, содержащее вкладки.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (window: Window) => void

    • окно

      Содержит сведения об окне, вкладки которого были выделены.

Возврат

  • Обещание< windows.Window >

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

move()

Обещать
chrome.tabs.move(
  tabIds: number | number[],
  moveProperties: object,
  callback?: function,
)

Перемещает одну или несколько вкладок на новое место в пределах окна или в новое окно. Обратите внимание, что вкладки можно перемещать только в обычные окна (window.type === "normal") и из них.

Параметры

  • tabIds

    номер | номер[]

    Идентификатор вкладки или список идентификаторов вкладок для перемещения.

  • moveProperties

    объект

    • индекс

      число

      Позиция, в которую следует переместить окно. Используйте -1 , чтобы поместить вкладку в конец окна.

    • windowId

      номер необязательно

      По умолчанию используется окно, в котором в данный момент находится вкладка.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tabs: Tab | Tab[]) => void

Возврат

  • Обещание< Tab | Tab []>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

query()

Обещать
chrome.tabs.query(
  queryInfo: object,
  callback?: function,
)

Получает все вкладки, имеющие указанные свойства, или все вкладки, если свойства не указаны.

Параметры

  • queryInfo

    объект

    • активный

      логическое необязательное

      Активны ли вкладки в своих окнах.

    • слышимый

      логическое необязательное

      Хром 45+

      Слышны ли вкладки.

    • autoDiscardable

      логическое необязательное

      Хром 54+

      Может ли браузер автоматически закрывать вкладки при нехватке ресурсов.

    • текущее окно

      логическое необязательное

      Находятся ли вкладки в текущем окне .

    • выброшен

      логическое необязательное

      Хром 54+

      Удалены ли вкладки. Удалённая вкладка — это вкладка, содержимое которой было выгружено из памяти, но всё ещё отображается на панели вкладок. Её содержимое будет загружено заново при следующей активации.

    • замороженный

      логическое необязательное

      Хром 132+

      Заморожены ли вкладки. Замороженная вкладка не может выполнять задачи, включая обработчики событий и таймеры. Она отображается на панели вкладок, а её содержимое загружается в память. Она размораживается при активации.

    • groupId

      номер необязательно

      Хром 88+

      Идентификатор группы, в которой находятся вкладки, или tabGroups.TAB_GROUP_ID_NONE для несгруппированных вкладок.

    • выделено

      логическое необязательное

      Подсвечиваются ли вкладки.

    • индекс

      номер необязательно

      Положение вкладок в окнах.

    • lastFocusedWindow

      логическое необязательное

      Находятся ли вкладки в последнем активном окне.

    • приглушенный

      логическое необязательное

      Хром 45+

      Отключены ли вкладки.

    • закрепленный

      логическое необязательное

      Закреплены ли вкладки.

    • splitViewId

      номер необязательно

      В ожидании

      Идентификатор разделенного представления, в котором находятся вкладки, или tabs.SPLIT_VIEW_ID_NONE для вкладок, которые не находятся в разделенном представлении.

    • статус

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

      Статус загрузки вкладки.

    • заголовок

      строка необязательная

      Сопоставлять заголовки страниц с шаблоном. Это свойство игнорируется, если у расширения нет разрешения "tabs" или разрешений на размещение страницы.

    • URL-адрес

      строка | строка[] необязательно

      Сопоставьте вкладки с одним или несколькими шаблонами URL . Идентификаторы фрагментов не сопоставляются. Это свойство игнорируется, если у расширения нет разрешения "tabs" или разрешений на хост для страницы.

    • windowId

      номер необязательно

      Идентификатор родительского окна или windows.WINDOW_ID_CURRENT для текущего окна .

    • Тип окна

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

      Тип окна, в котором находятся вкладки.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (result: Tab[]) => void

Возврат

  • Обещание< Tab []>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

reload()

Обещать
chrome.tabs.reload(
  tabId?: number,
  reloadProperties?: object,
  callback?: function,
)

Перезагрузить вкладку.

Параметры

  • tabId

    номер необязательно

    Идентификатор вкладки для перезагрузки; по умолчанию — выбранная вкладка текущего окна.

  • reloadProperties

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

    • bypassCache

      логическое необязательное

      Обходить ли локальное кэширование. Значение по умолчанию — false .

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

remove()

Обещать
chrome.tabs.remove(
  tabIds: number | number[],
  callback?: function,
)

Закрывает одну или несколько вкладок.

Параметры

  • tabIds

    номер | номер[]

    Идентификатор вкладки или список идентификаторов вкладок, которые необходимо закрыть.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

sendMessage()

Обещать
chrome.tabs.sendMessage(
  tabId: number,
  message: any,
  options?: object,
  callback?: function,
)

Отправляет одно сообщение скрипту(ам) контента на указанной вкладке с необязательным обратным вызовом, который запускается при получении ответа. Событие runtime.onMessage активируется в каждом скрипте контента, запущенном на указанной вкладке для текущего расширения.

Параметры

  • tabId

    число

  • сообщение

    любой

    Сообщение для отправки. Это сообщение должно быть объектом, поддерживающим формат JSON.

  • параметры

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

    • documentId

      строка необязательная

      Хром 106+

      Отправить сообщение определенному документу , идентифицированному по documentId , а не всем фреймам на вкладке.

    • frameId

      номер необязательно

      Отправить сообщение определенному фрейму, идентифицированному по frameId , а не всем фреймам на вкладке.

  • перезвонить

    функция необязательна

    Хром 99+

    Параметр callback выглядит так:

    (response: any) => void

    • ответ

      любой

      Объект ответа JSON, отправленный обработчиком сообщения. Если при подключении к указанной вкладке возникает ошибка, функция обратного вызова вызывается без аргументов, а runtime.lastError записывается сообщение об ошибке.

Возврат

  • Обещание<любое>

    Хром 99+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

setZoom()

Обещать
chrome.tabs.setZoom(
  tabId?: number,
  zoomFactor: number,
  callback?: function,
)

Увеличивает указанную вкладку.

Параметры

  • tabId

    номер необязательно

    Идентификатор вкладки для масштабирования; по умолчанию — активная вкладка текущего окна.

  • zoomFactor

    число

    Новый коэффициент масштабирования. Значение 0 устанавливает текущий коэффициент масштабирования по умолчанию для вкладки. Значения больше 0 задают коэффициент масштабирования (возможно, отличный от коэффициента по умолчанию) для вкладки.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

setZoomSettings()

Обещать
chrome.tabs.setZoomSettings(
  tabId?: number,
  zoomSettings: ZoomSettings,
  callback?: function,
)

Задаёт параметры масштабирования для указанной вкладки, определяющие, как будут обрабатываться изменения масштаба. При переходе по вкладке эти настройки сбрасываются к значениям по умолчанию.

Параметры

  • tabId

    номер необязательно

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

  • ZoomSettings

    Определяет, как и в каком диапазоне обрабатываются изменения масштаба.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

ungroup()

Обещание Chrome 88+
chrome.tabs.ungroup(
  tabIds: number | [number, ...number[]],
  callback?: function,
)

Удаляет одну или несколько вкладок из соответствующих групп. Если какие-либо группы становятся пустыми, они удаляются.

Параметры

  • tabIds

    число | [число, ...число[]]

    Идентификатор вкладки или список идентификаторов вкладок, которые следует удалить из соответствующих групп.

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

update()

Обещать
chrome.tabs.update(
  tabId?: number,
  updateProperties: object,
  callback?: function,
)

Изменяет свойства вкладки. Свойства, не указанные в updateProperties , не изменяются.

Параметры

  • tabId

    номер необязательно

    По умолчанию используется выбранная вкладка текущего окна .

  • updateProperties

    объект

    • активный

      логическое необязательное

      Должна ли вкладка быть активной. Не влияет на то, находится ли окно в фокусе (см. windows.update ).

    • autoDiscardable

      логическое необязательное

      Хром 54+

      Должна ли вкладка автоматически закрываться браузером при низком уровне ресурсов.

    • выделено

      логическое необязательное

      Добавляет или удаляет вкладку из текущего выбора.

    • приглушенный

      логическое необязательное

      Хром 45+

      Следует ли отключать звук на вкладке.

    • openerTabId

      номер необязательно

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

    • закрепленный

      логическое необязательное

      Следует ли закреплять вкладку.

    • выбранный

      логическое необязательное

      Устаревший

      Пожалуйста, используйте выделенное .

      Следует ли выбирать вкладку.

    • URL-адрес

      строка необязательная

      URL-адрес для перехода по вкладке. URL-адреса JavaScript не поддерживаются; вместо этого используйте scripting.executeScript .

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    (tab?: Tab) => void

    • вкладка

      Вкладка необязательна

      Подробная информация об обновлённой вкладке. Свойства url , pendingUrl , title и favIconUrl включаются в объект tabs.Tab только в том случае, если расширение имеет разрешение "tabs" или разрешение хоста для страницы.

Возврат

  • Обещание< Tab | не определено>

    Хром 88+

    Обещания поддерживаются в Manifest V3 и более поздних версиях, но для обратной совместимости предусмотрены обратные вызовы. Нельзя использовать оба в одном вызове функции. Обещание разрешается с тем же типом, который передаётся обратному вызову.

События

onActivated

chrome.tabs.onActivated.addListener(
  callback: function,
)

Срабатывает при изменении активной вкладки в окне. Обратите внимание, что URL-адрес вкладки может быть не установлен на момент срабатывания этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления при установке URL-адреса.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (activeInfo: object) => void

    • activeInfo

      объект

      • tabId

        число

        Идентификатор вкладки, которая стала активной.

      • windowId

        число

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

onAttached

chrome.tabs.onAttached.addListener(
  callback: function,
)

Срабатывает, когда вкладка прикреплена к окну, например, при ее перемещении между окнами.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (tabId: number, attachInfo: object) => void

    • tabId

      число

    • прикрепитьИнформацию

      объект

      • новая позиция

        число

      • newWindowId

        число

onCreated

chrome.tabs.onCreated.addListener(
  callback: function,
)

Срабатывает при создании вкладки. Обратите внимание, что URL-адрес вкладки и её принадлежность к группе могут быть не установлены на момент срабатывания этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления при установке URL-адреса или добавлении вкладки в группу.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (tab: Tab) => void

onDetached

chrome.tabs.onDetached.addListener(
  callback: function,
)

Срабатывает при отсоединении вкладки от окна, например, при ее перемещении между окнами.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (tabId: number, detachInfo: object) => void

    • tabId

      число

    • отсоединитьИнформация

      объект

      • старая позиция

        число

      • oldWindowId

        число

onHighlighted

chrome.tabs.onHighlighted.addListener(
  callback: function,
)

Срабатывает при изменении выделенных или выбранных вкладок в окне.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (highlightInfo: object) => void

    • highlightInfo

      объект

      • tabIds

        число[]

        Все выделенные вкладки в окне.

      • windowId

        число

        Окно, вкладки которого изменились.

onMoved

chrome.tabs.onMoved.addListener(
  callback: function,
)

Срабатывает при перемещении вкладки внутри окна. Срабатывает только одно событие перемещения, представляющее вкладку, которую пользователь переместил непосредственно. События перемещения не срабатывают для других вкладок, которые должны перемещаться в ответ на перемещение вкладки вручную. Это событие не срабатывает при перемещении вкладки между окнами; подробности см. в tabs.onDetached .

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (tabId: number, moveInfo: object) => void

    • tabId

      число

    • moveInfo

      объект

      • fromIndex

        число

      • toIndex

        число

      • windowId

        число

onRemoved

chrome.tabs.onRemoved.addListener(
  callback: function,
)

Срабатывает при закрытии вкладки.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (tabId: number, removeInfo: object) => void

    • tabId

      число

    • removeInfo

      объект

      • isWindowClosing

        булев

        Истина, когда вкладка была закрыта из-за закрытия ее родительского окна.

      • windowId

        число

        Окно, вкладка которого закрыта.

onReplaced

chrome.tabs.onReplaced.addListener(
  callback: function,
)

Срабатывает, когда вкладка заменяется другой вкладкой из-за предварительной отрисовки или мгновенно.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (addedTabId: number, removedTabId: number) => void

    • добавленныйTabId

      число

    • removedTabId

      число

onUpdated

chrome.tabs.onUpdated.addListener(
  callback: function,
)

Срабатывает при обновлении вкладки.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (tabId: number, changeInfo: object, tab: Tab) => void

    • tabId

      число

    • changeInfo

      объект

      • слышимый

        логическое необязательное

        Хром 45+

        Новое звуковое состояние вкладки.

      • autoDiscardable

        логическое необязательное

        Хром 54+

        Новое состояние вкладки — возможность автоматического удаления.

      • выброшен

        логическое необязательное

        Хром 54+

        Новое отмененное состояние вкладки.

      • favIconUrl

        строка необязательная

        URL-адрес нового значка вкладки.

      • замороженный

        логическое необязательное

        Хром 132+

        Новое замороженное состояние вкладки.

      • groupId

        номер необязательно

        Хром 88+

        Новая группа вкладки.

      • mutedInfo

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

        Хром 46+

        Новое отключенное состояние вкладки и причина изменения.

      • закрепленный

        логическое необязательное

        Новое закрепленное состояние вкладки.

      • splitViewId

        номер необязательно

        В ожидании

        Новый режим Split View на вкладке.

      • статус

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

        Статус загрузки вкладки.

      • заголовок

        строка необязательная

        Хром 48+

        Новое название вкладки.

      • URL-адрес

        строка необязательная

        URL-адрес вкладки, если он изменился.

    • вкладка

onZoomChange

chrome.tabs.onZoomChange.addListener(
  callback: function,
)

Срабатывает при увеличении масштаба вкладки.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      объект

      • новыйZoomFactor

        число

      • oldZoomFactor

        число

      • tabId

        число

      • ZoomSettings