browser.tabs

Описание

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

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

Разрешения

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

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

Разрешение tabs

Это разрешение не дает доступа к пространству имен browser.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"
  ],
  ...
}

Примеры использования

Ниже приведены примеры распространенных сценариев использования.

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

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

background.js:

browser.runtime.onInstalled.addListener(({reason}) => {
  if (reason === 'install') {
    browser.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 browser.tabs.query(queryOptions);
    return tab;
  }

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

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

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

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

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

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

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

  browser.tabs.onActivated.addListener(moveToFirstPosition);

  async function moveToFirstPosition(activeInfo) {
    try {
      await browser.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);
      }
    }
  }

  browser.tabs.onActivated.addListener(moveToFirstPositionMV2);

  function moveToFirstPositionMV2(activeInfo) {
    browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
      if (browser.runtime.lastError) {
        const error = browser.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 browser.tabs.query({ active: true, lastFocusedWindow: true });
  const response = await browser.tabs.sendMessage(tab.id, message);
  // TODO: Do something with the response.
}

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

Чтобы посмотреть другие демонстрации расширений Tabs API, перейдите по любой из следующих ссылок:

Типы

MutedInfo

Chrome 46 и более поздних версий browser.* начиная с Chrome 148

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

Свойства

  • extensionId

    Строка (необязательно)

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

  • Без звука

    Логическое значение

    Указывает, отключен ли звук на вкладке. Звук на вкладке можно отключить, даже если он не воспроизводится в данный момент. Это эквивалентно тому, показывается ли индикатор отключенного звука.

  • reason

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

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

MutedInfoReason

Chrome 46 и более поздних версий browser.* начиная с Chrome 148

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

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

"user"
Пользователь отключил звук.

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

"extension"
Расширение, указанное в поле extensionId, установило статус отключения звука.

Tab

Свойства

  • активно

    Логическое значение

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

  • Audible

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

    Chrome 45 и более поздние версии browser.* начиная с Chrome 148

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

  • autoDiscardable

    Логическое значение

    Chrome 54+ browser.* начиная с Chrome 148

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

  • отклонили

    Логическое значение

    Chrome 54+ browser.* начиная с Chrome 148

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

  • favIconUrl

    Строка (необязательно)

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

  • завис

    Логическое значение

    Chrome 132+ browser.* начиная с Chrome 148

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

  • groupId

    число

    Chrome 88+ browser.* начиная с Chrome 148

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

  • высота

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

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

  • выделенное

    Логическое значение

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

  • id

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

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

  • инкогнито

    Логическое значение

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

  • индекс

    число

    Индекс вкладки в окне, начиная с нуля.

  • lastAccessed

    число

    Chrome 121+ browser.* начиная с Chrome 148

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

  • mutedInfo

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

    Chrome 46 и более поздних версий browser.* начиная с Chrome 148

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

  • openerTabId

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

    Идентификатор вкладки, которая открыла эту вкладку (если есть). Это свойство присутствует, только если вкладка, с которой была открыта текущая, все ещё существует.

  • pendingUrl

    Строка (необязательно)

    Chrome 79+ browser.* начиная с Chrome 148

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

  • в главном окн

    Логическое значение

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

  • выбрано

    Логическое значение

    Поддержка прекращена

    Используйте tabs.Tab.highlighted.

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

  • sessionId

    Строка (необязательно)

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

  • splitViewId

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

    Chrome 140+ browser.* начиная с Chrome 148

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

  • статус

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

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

  • название

    Строка (необязательно)

    Название вкладки. Это свойство присутствует, только если у расширения есть разрешение "tabs" или разрешение хоста для страницы.

  • url

    Строка (необязательно)

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

  • ширина

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

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

  • windowId

    число

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

TabStatus

Chrome 44+ browser.* начиная с Chrome 148

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

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

"unloaded"

"loading"

"complete"

WindowType

Chrome 44+ browser.* начиная с Chrome 148

Тип окна.

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

"normal"

"popup"

"panel"

"app"

"devtools"

ZoomSettings

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

Свойства

  • defaultZoomFactor

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

    Chrome 43 и более поздних версий browser.* начиная с Chrome 148

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

  • режим

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

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

  • область действия

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

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

ZoomSettingsMode

Chrome 44+ browser.* начиная с Chrome 148

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

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

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

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

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

ZoomSettingsScope

Chrome 44+ browser.* начиная с Chrome 148

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

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

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

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

Свойства

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

Chrome 92 и более поздние версии browser.* начиная с Chrome 148

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

Значение

2

SPLIT_VIEW_ID_NONE

Chrome 140+ browser.* начиная с Chrome 148

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

Значение

-1

TAB_ID_NONE

Chrome 46 и более поздних версий browser.* начиная с Chrome 148

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

Значение

-1

TAB_INDEX_NONE

Chrome 123 и более поздние версии browser.* начиная с Chrome 148

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

Значение

-1

Методы

captureVisibleTab()

browser.tabs.captureVisibleTab(
  windowId?: number,
  options?: ImageDetails,
)
: Promise<string>

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

Параметры

  • windowId

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

    Целевое окно. По умолчанию используется текущее окно.

  • Параметры

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

Возвраты

  • Promise<string>

    Chrome 88+ browser.* начиная с Chrome 148

connect()

browser.tabs.connect(
  tabId: number,
  connectInfo?: object,
)
: runtime.Port

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

Параметры

  • tabId

    число

  • connectInfo

    Объект (необязательно)

    • documentId

      Строка (необязательно)

      Chrome 106 и более поздних версий browser.* начиная с Chrome 148

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

    • frameId

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

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

    • name

      Строка (необязательно)

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

Возвраты

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

create()

browser.tabs.create(
  createProperties: object,
)
: Promise<Tab>

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

Параметры

  • createProperties

    Объект

    • активно

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

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

    • индекс

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

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

    • openerTabId

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

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

    • в главном окн

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

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

    • выбрано

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

      Поддержка прекращена

      Используйте значение active.

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

    • splitWithTabId

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

      Chrome 155+

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

      • Вкладка не должна быть уже разделена.
      • Оно должно быть в том же окне, что и новая вкладка.
      • Если указано свойство windowId, оно должно совпадать с идентификатором окна вкладки, с которой нужно разделить экран.
      • Если указан параметр index, он должен быть индексом, смежным с вкладкой split-with, и будет влиять на относительное позиционирование вновь созданной вкладки.
    • url

      Строка (необязательно)

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

    • windowId

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

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

Возвраты

  • Promise<Tab>

    Chrome 88+ browser.* начиная с Chrome 148

createSplit()

Chrome 155+
browser.tabs.createSplit(
  tabIds: [number, number],
)
: Promise<number>

Открывает две существующие вкладки в режиме параллельного просмотра.

Параметры

  • tabIds

    [number, number]

    Массив, содержащий ровно два идентификатора вкладок, которые нужно объединить в режиме параллельного просмотра. Все вкладки должны соответствовать следующим условиям:

    Они должны быть смежными. Они не должны быть уже открыты в режиме параллельного просмотра. У них должны совпадать состояния windowId, pinned и groupId.

Возвраты

  • Promise<number>

detectLanguage()

browser.tabs.detectLanguage(
  tabId?: number,
)
: Promise<string>

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

Параметры

  • tabId

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

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

Возвраты

  • Promise<string>

    Chrome 88+ browser.* начиная с Chrome 148

discard()

Chrome 54+ browser.* начиная с Chrome 148
browser.tabs.discard(
  tabId?: number,
)
: Promise<Tab | undefined>

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

Параметры

  • tabId

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

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

Возвраты

  • Promise<Tab | undefined>

    Chrome 88+ browser.* начиная с Chrome 148

    Разрешается после завершения операции.

duplicate()

browser.tabs.duplicate(
  tabId: number,
)
: Promise<Tab | undefined>

Создает копию вкладки.

Параметры

  • tabId

    число

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

Возвраты

  • Promise<Tab | undefined>

    Chrome 88+ browser.* начиная с Chrome 148

get()

browser.tabs.get(
  tabId: number,
)
: Promise<Tab>

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

Параметры

  • tabId

    число

Возвраты

  • Promise<Tab>

    Chrome 88+ browser.* начиная с Chrome 148

getCurrent()

browser.tabs.getCurrent(): Promise<Tab | undefined>

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

Возвраты

  • Promise<Tab | undefined>

    Chrome 88+ browser.* начиная с Chrome 148

getZoom()

browser.tabs.getZoom(
  tabId?: number,
)
: Promise<number>

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

Параметры

  • tabId

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

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

Возвраты

  • Promise<number>

    Chrome 88+ browser.* начиная с Chrome 148

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

getZoomSettings()

browser.tabs.getZoomSettings(
  tabId?: number,
)
: Promise<ZoomSettings>

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

Параметры

  • tabId

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

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

Возвраты

  • Promise<ZoomSettings>

    Chrome 88+ browser.* начиная с Chrome 148

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

goBack()

Chrome 72 и более поздних версий browser.* начиная с Chrome 148
browser.tabs.goBack(
  tabId?: number,
)
: Promise<void>

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

Параметры

  • tabId

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

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

Возвраты

  • Promise<void>

    Chrome 88+ browser.* начиная с Chrome 148

goForward()

Chrome 72 и более поздних версий browser.* начиная с Chrome 148
browser.tabs.goForward(
  tabId?: number,
)
: Promise<void>

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

Параметры

  • tabId

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

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

Возвраты

  • Promise<void>

    Chrome 88+ browser.* начиная с Chrome 148

group()

Chrome 88+ browser.* начиная с Chrome 148
browser.tabs.group(
  options: object,
)
: Promise<number>

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

Параметры

  • Параметры

    Объект

    • createProperties

      Объект (необязательно)

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

      • windowId

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

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

    • groupId

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

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

    • tabIds

      number | [number, ...number[]]

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

Возвраты

  • Promise<number>

highlight()

browser.tabs.highlight(
  highlightInfo: object,
)
: Promise<windows.Window>

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

Параметры

  • highlightInfo

    Объект

    • вкладки

      number | number[]

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

    • windowId

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

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

Возвраты

  • Chrome 88+ browser.* начиная с Chrome 148

move()

browser.tabs.move(
  tabIds: number | number[],
  moveProperties: object,
)
: Promise<Tab | Tab[]>

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

Параметры

  • tabIds

    number | number[]

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

  • moveProperties

    Объект

    • индекс

      число

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

    • windowId

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

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

Возвраты

  • Promise<Tab | Tab[]>

    Chrome 88+ browser.* начиная с Chrome 148

query()

browser.tabs.query(
  queryInfo: object,
)
: Promise<Tab[]>

Возвращает все вкладки с указанными свойствами или все вкладки, если свойства не указаны.

Параметры

  • queryInfo

    Объект

    • активно

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

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

    • Audible

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

      Chrome 45 и более поздние версии browser.* начиная с Chrome 148

      Вкладки со звуком.

    • autoDiscardable

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

      Chrome 54+ browser.* начиная с Chrome 148

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

    • currentWindow

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

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

    • отклонили

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

      Chrome 54+ browser.* начиная с Chrome 148

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

    • завис

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

      Chrome 132+ browser.* начиная с Chrome 148

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

    • groupId

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

      Chrome 88+ browser.* начиная с Chrome 148

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

    • выделенное

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

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

    • индекс

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

      Позиции вкладок в окнах.

    • lastFocusedWindow

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

      Находятся ли вкладки в окне, которое последним было в фокусе.

    • Без звука

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

      Chrome 45 и более поздние версии browser.* начиная с Chrome 148

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

    • в главном окн

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

      закреплены ли вкладки;

    • splitViewId

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

      Chrome 140+ browser.* начиная с Chrome 148

      Идентификатор режима Split View, в котором находятся вкладки, или tabs.SPLIT_VIEW_ID_NONE для вкладок, которые не находятся в режиме Split View.

    • статус

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

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

    • название

      Строка (необязательно)

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

    • url

      string | string[] optional

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

    • windowId

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

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

    • windowType

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

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

Возвраты

  • Promise<Tab[]>

    Chrome 88+ browser.* начиная с Chrome 148

reload()

browser.tabs.reload(
  tabId?: number,
  reloadProperties?: object,
)
: Promise<void>

Обновить вкладку.

Параметры

  • tabId

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

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

  • reloadProperties

    Объект (необязательно)

    • bypassCache

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

      Указывает, нужно ли обходить локальное кеширование. Значение по умолчанию – false.

Возвраты

  • Promise<void>

    Chrome 88+ browser.* начиная с Chrome 148

remove()

browser.tabs.remove(
  tabIds: number | number[],
)
: Promise<void>

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

Параметры

  • tabIds

    number | number[]

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

Возвраты

  • Promise<void>

    Chrome 88+ browser.* начиная с Chrome 148

sendMessage()

browser.tabs.sendMessage(
  tabId: number,
  message: any,
  options?: object,
)
: Promise<any>

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

Параметры

  • tabId

    число

  • Сообщение

    любой

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

  • Параметры

    Объект (необязательно)

    • documentId

      Строка (необязательно)

      Chrome 106 и более поздних версий browser.* начиная с Chrome 148

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

    • frameId

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

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

Возвраты

  • Promise<any>

    Chrome 99 и более поздние версии browser.* начиная с Chrome 148

    Обещание, которое разрешается ответом из скрипта контента. Если при подключении к указанной вкладке произойдет ошибка, обещание будет отклонено.

setZoom()

browser.tabs.setZoom(
  tabId?: number,
  zoomFactor: number,
)
: Promise<void>

Изменяет масштаб указанной вкладки.

Параметры

  • tabId

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

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

  • zoomFactor

    число

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

Возвраты

  • Promise<void>

    Chrome 88+ browser.* начиная с Chrome 148

    Разрешается после изменения коэффициента масштабирования.

setZoomSettings()

browser.tabs.setZoomSettings(
  tabId?: number,
  zoomSettings: ZoomSettings,
)
: Promise<void>

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

Параметры

  • tabId

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

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

  • zoomSettings

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

Возвраты

  • Promise<void>

    Chrome 88+ browser.* начиная с Chrome 148

    Выполняется после изменения настроек масштабирования.

ungroup()

Chrome 88+ browser.* начиная с Chrome 148
browser.tabs.ungroup(
  tabIds: number | [number, ...number[]],
)
: Promise<void>

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

Параметры

  • tabIds

    number | [number, ...number[]]

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

Возвраты

  • Promise<void>

unsplit()

Chrome 155+
browser.tabs.unsplit(
  splitViewId: number,
)
: Promise<void>

Разделяет вкладки в режиме Split View на независимые вкладки.

Параметры

  • splitViewId

    число

    Идентификатор режима Split View, который нужно отключить.

Возвраты

  • Promise<void>

update()

browser.tabs.update(
  tabId?: number,
  updateProperties: object,
)
: Promise<Tab | undefined>

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

Параметры

  • tabId

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

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

  • updateProperties

    Объект

    • активно

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

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

    • autoDiscardable

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

      Chrome 54+ browser.* начиная с Chrome 148

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

    • выделенное

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

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

    • Без звука

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

      Chrome 45 и более поздние версии browser.* начиная с Chrome 148

      Указывает, нужно ли отключить звук на вкладке.

    • openerTabId

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

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

    • в главном окн

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

      Нужно ли закрепить вкладку.

    • выбрано

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

      Поддержка прекращена

      Используйте выделенный.

      Должна ли быть выбрана вкладка.

    • url

      Строка (необязательно)

      URL, на который нужно перейти. URL JavaScript не поддерживаются. Вместо них используйте scripting.executeScript.

Возвраты

  • Promise<Tab | undefined>

    Chrome 88+ browser.* начиная с Chrome 148

События

onActivated

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

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

Параметры

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

    function

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

    (activeInfo: object) => void

    • activeInfo

      Объект

      • tabId

        число

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

      • windowId

        число

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

onAttached

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

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

Параметры

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

    function

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

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

    • tabId

      число

    • attachInfo

      Объект

      • newPosition

        число

      • newWindowId

        число

onCreated

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

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

Параметры

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

    function

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

    (tab: Tab) => void

    • табуляция

onDetached

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

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

Параметры

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

    function

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

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

    • tabId

      число

    • detachInfo

      Объект

      • oldPosition

        число

      • oldWindowId

        число

onHighlighted

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

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

Параметры

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

    function

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

    (highlightInfo: object) => void

    • highlightInfo

      Объект

      • tabIds

        number[]

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

      • windowId

        число

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

onMoved

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

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

Параметры

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

    function

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

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

    • tabId

      число

    • moveInfo

      Объект

      • fromIndex

        число

      • toIndex

        число

      • windowId

        число

onRemoved

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

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

Параметры

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

    function

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

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

    • tabId

      число

    • removeInfo

      Объект

      • isWindowClosing

        Логическое значение

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

      • windowId

        число

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

onReplaced

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

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

Параметры

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

    function

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

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

    • addedTabId

      число

    • removedTabId

      число

onUpdated

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

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

Параметры

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

    function

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

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

    • tabId

      число

    • changeInfo

      Объект

      • Audible

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

        Chrome 45 и более поздние версии browser.* начиная с Chrome 148

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

      • autoDiscardable

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

        Chrome 54+ browser.* начиная с Chrome 148

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

      • отклонили

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

        Chrome 54+ browser.* начиная с Chrome 148

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

      • favIconUrl

        Строка (необязательно)

        Новый URL значка вкладки.

      • завис

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

        Chrome 132+ browser.* начиная с Chrome 148

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

      • groupId

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

        Chrome 88+ browser.* начиная с Chrome 148

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

      • mutedInfo

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

        Chrome 46 и более поздних версий browser.* начиная с Chrome 148

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

      • в главном окн

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

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

      • splitViewId

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

        Chrome 140+ browser.* начиная с Chrome 148

        Вкладка откроется в режиме параллельного просмотра.

      • статус

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

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

      • название

        Строка (необязательно)

        Chrome 48+ browser.* начиная с Chrome 148

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

      • url

        Строка (необязательно)

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

    • табуляция

onZoomChange

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

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

Параметры

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

    function

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

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      Объект

      • newZoomFactor

        число

      • oldZoomFactor

        число

      • tabId

        число

      • zoomSettings