chrome.tabs

Описание

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

Обзор

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

Разрешения

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

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

Разрешение «вкладки»
Это разрешение не предоставляет доступ к пространству имен chrome.tabs . Вместо этого он предоставляет расширению возможность вызывать tabs.query() для четырех конфиденциальных свойств экземпляров tabs.Tab : url , pendingUrl , title и favIconUrl .
Разрешения хоста
Разрешения хоста позволяют расширению читать и запрашивать четыре конфиденциальные tabs.Tab соответствующей вкладки. Свойства вкладки. Они также могут напрямую взаимодействовать с соответствующими вкладками, используя такие методы, как tabs.captureVisibleTab() , tabs.executeScript() , tabs.insertCSS() и tabs.removeCSS() .
Разрешение «activeTab»
activeTab предоставляет расширению временное разрешение хоста для текущей вкладки в ответ на вызов пользователя. В отличие от разрешений хоста, activeTab не выдает никаких предупреждений.

Манифест

Ниже приведены примеры объявления каждого разрешения в манифесте :

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

  {
    "name": "My extension",
    ...
    "host_permissions": [
      "http://*/*",
      "https://*/*"
    ],
    ...
  }

  {
    "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.
}

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

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

Типы

MutedInfo

Хром 46+

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

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

  • идентификатор расширения

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

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

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

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

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

  • причина

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

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

MutedInfoReason

Хром 46+

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

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

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

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

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

Tab

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

  • активный

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

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

  • слышимый

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

    Хром 45+

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

  • автосбрасываемый

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

    Хром 54+

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

  • выброшенный

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

    Хром 54+

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

  • favIconUrl

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

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

  • идентификатор группы

    число

    Хром 88+

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

  • высота

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

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

  • выделено

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

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

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

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

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

  • инкогнито

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

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

  • индекс

    число

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

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

    число

    Хром 121+

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

  • mutedInfo

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

    Хром 46+

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

  • openTabId

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

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

  • ожидающий URL

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

    Хром 79+

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

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

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

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

  • выбрано

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

    Устарело

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

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

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

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

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

  • статус

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

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

  • заголовок

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

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

  • URL

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

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

  • ширина

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

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

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

    число

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

TabStatus

Хром 44+

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

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

"разгружен"

"загрузка"

"полный"

WindowType

Хром 44+

Тип окна.

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

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

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

"панель"

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

"инструменты разработчика"

ZoomSettings

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

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

  • по умолчаниюZoomFactor

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

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

Параметры

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

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

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

  • параметры

    Детали изображения необязательно

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

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

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

    (dataUrl: string) => void

    • URL-адрес данных

      нить

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

Возврат

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

    Хром 88+

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

connect()

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

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

Параметры

  • идентификатор табуляции

    число

  • ConnectInfo

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

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

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

      Хром 106+

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

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

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

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

    • имя

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

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

Возврат

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

create()

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

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

Параметры

  • создать свойства

    объект

    • активный

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

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

    • индекс

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

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

    • openTabId

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

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

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

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

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

    • выбрано

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

      Устарело

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

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

    • URL

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

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

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

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

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

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

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

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

    (tab: Tab) => void

Возврат

  • Обещание< Вкладка >

    Хром 88+

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

detectLanguage()

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

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

Параметры

  • идентификатор табуляции

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

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

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

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

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

    (language: string) => void

    • язык

      нить

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

Возврат

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

    Хром 88+

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

discard()

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

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

Параметры

  • идентификатор табуляции

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

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

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

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

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

    (tab?: Tab) => void

    • вкладка

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

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

Возврат

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

    Хром 88+

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

duplicate()

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

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

Параметры

  • идентификатор табуляции

    число

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

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

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

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

    (tab?: Tab) => void

    • вкладка

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

      Подробности о дублированной вкладке. Объект tabs.Tab не содержит url , pendingUrl , title и favIconUrl , если разрешение "tabs" не запрошено.

Возврат

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

    Хром 88+

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

executeScript()

Promise ≤ MV2 устарел с Chrome 91
chrome.tabs.executeScript(
  tabId?: number,
  details: InjectDetails,
  callback?: function,
)

Заменен на scripting.executeScript в манифесте V3.

Внедряет код JavaScript на страницу. Подробности см. в разделе программного внедрения документа по сценариям контента.

Параметры

  • идентификатор табуляции

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

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

  • подробности

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

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

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

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

    (result?: any[]) => void

    • результат

      любой[] необязательно

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

Возврат

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

    Хром 88+

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

get()

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

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

Параметры

  • идентификатор табуляции

    число

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

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

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

    (tab: Tab) => void

Возврат

  • Обещание< Вкладка >

    Хром 88+

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

getAllInWindow()

Обещание ≤ MV2 устарело
chrome.tabs.getAllInWindow(
  windowId?: number,
  callback?: function,
)

Пожалуйста, используйте tabs.query {windowId: windowId} .

Получает сведения обо всех вкладках в указанном окне.

Параметры

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

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

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

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

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

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

    (tabs: Tab[]) => void

Возврат

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

    Хром 88+

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

getCurrent()

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

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

Параметры

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

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

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

    (tab?: Tab) => void

Возврат

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

    Хром 88+

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

getSelected()

Обещание ≤ MV2 устарело
chrome.tabs.getSelected(
  windowId?: number,
  callback?: function,
)

Пожалуйста, используйте tabs.query {active: true} .

Получает вкладку, выбранную в указанном окне.

Параметры

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

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

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

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

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

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

    (tab: Tab) => void

Возврат

  • Обещание< Вкладка >

    Хром 88+

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

getZoom()

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

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

Параметры

  • идентификатор табуляции

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

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

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

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

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

    (zoomFactor: number) => void

    • ZoomFactor

      число

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

Возврат

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

    Хром 88+

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

getZoomSettings()

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

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

Параметры

  • идентификатор табуляции

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

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

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

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

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

    (zoomSettings: ZoomSettings) => void

Возврат

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

    Хром 88+

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

goBack()

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

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

Параметры

  • идентификатор табуляции

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

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

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

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

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

    () => void

Возврат

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

    Хром 88+

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

goForward()

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

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

Параметры

  • идентификатор табуляции

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

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

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

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

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

    () => void

Возврат

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

    Хром 88+

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

group()

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

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

Параметры

  • параметры

    объект

    • создать свойства

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

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

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

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

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

    • идентификатор группы

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

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

    • tabIds

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

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

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

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

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

    (groupId: number) => void

    • идентификатор группы

      число

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

Возврат

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

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

highlight()

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

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

Параметры

  • ВыделитеИнформацию

    объект

    • вкладки

      номер | число[]

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

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

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

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

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

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

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

    (window: Window) => void

    • окно

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

Возврат

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

    Хром 88+

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

insertCSS()

Promise ≤ MV2 устарел с Chrome 91
chrome.tabs.insertCSS(
  tabId?: number,
  details: InjectDetails,
  callback?: function,
)

Заменено scripting.insertCSS в манифесте V3.

Внедряет CSS на страницу. Стили, вставленные с помощью этого метода, можно удалить с помощью scripting.removeCSS . Подробности см. в разделе программного внедрения документа по сценариям контента.

Параметры

  • идентификатор табуляции

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

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

  • подробности

    Подробности текста CSS для вставки. Должен быть установлен либо код, либо свойство файла, но оба параметра не могут быть установлены одновременно.

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

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

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

    () => void

Возврат

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

    Хром 88+

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

move()

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

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

Параметры

  • tabIds

    номер | число[]

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

  • перемещениеСвойства

    объект

    • индекс

      число

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

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

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

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

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

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

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

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

Возврат

  • Обещание< Вкладка | Вкладка []>

    Хром 88+

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

query()

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

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

Параметры

  • запросИнформация

    объект

    • активный

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

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

    • слышимый

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

      Хром 45+

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

    • автосбрасываемый

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

      Хром 54+

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

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

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

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

    • выброшенный

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

      Хром 54+

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

    • идентификатор группы

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

      Хром 88+

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

    • выделено

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

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

    • индекс

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

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

    • последнееFocusedWindow

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

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

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

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

      Хром 45+

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

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

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

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

    • статус

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

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

    • заголовок

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

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

    • URL

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

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

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

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

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

    • тип окна

      Тип окна необязательно

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

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

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

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

    (result: Tab[]) => void

Возврат

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

    Хром 88+

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

reload()

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

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

Параметры

  • идентификатор табуляции

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

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

  • перезагрузить свойства

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

    • обход кэша

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

      Обходить ли локальное кэширование. По умолчанию установлено значение false .

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

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

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

    () => void

Возврат

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

    Хром 88+

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

remove()

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

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

Параметры

  • tabIds

    номер | число[]

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

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

    функция опциональная

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

    () => void

Возврат

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

    Хром 88+

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

removeCSS()

Promise Chrome 87+ ≤ MV2 устарел с Chrome 91
chrome.tabs.removeCSS(
  tabId?: number,
  details: DeleteInjectionDetails,
  callback?: function,
)

Заменено на scripting.removeCSS в Manifest V3.

Удаляет со страницы CSS, который ранее был добавлен вызовом scripting.insertCSS .

Параметры

  • идентификатор табуляции

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

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

  • Подробности текста CSS, который нужно удалить. Должен быть установлен либо код, либо свойство файла, но оба параметра не могут быть установлены одновременно.

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

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

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

    () => void

Возврат

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

    Хром 88+

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

sendMessage()

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

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

Параметры

  • табид

    число

  • сообщение

    любой

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

  • параметры

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

    • DocumentId

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

      Хром 106+

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

    • FrameID

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

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

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

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

    Хром 99+

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

    (response: any) => void

    • ответ

      любой

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

Возврат

  • Обещай <любой>

    Хром 99+

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

sendRequest()

Обещание ≤ mv2 устарело
chrome.tabs.sendRequest(
  tabId: number,
  request: any,
  callback?: function,
)

Пожалуйста, используйте runtime.sendMessage .

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

Параметры

  • табид

    число

  • запрос

    любой

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

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

    Хром 99+

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

    (response: any) => void

    • ответ

      любой

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

Возврат

  • Обещай <любой>

    Хром 99+

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

setZoom()

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

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

Параметры

  • табид

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

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

  • Zoomfactor

    число

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

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

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

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

    () => void

Возврат

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

    Хром 88+

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

setZoomSettings()

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

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

Параметры

  • табид

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

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

  • увеличение масштабирования

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

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

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

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

    () => void

Возврат

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

    Хром 88+

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

ungroup()

Обещай хром 88+
chrome.tabs.ungroup(
  tabIds: number | [number, ...number[]],
  callback?: function,
)

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

Параметры

  • табиды

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

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

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

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

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

    () => void

Возврат

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

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

update()

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

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

Параметры

  • табид

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

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

  • UpdateProperties

    объект

    • активный

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

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

    • Автодискабельно

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

      Хром 54+

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

    • выделено

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

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

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

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

      Хром 45+

      Должна ли вкладка быть приглушенной.

    • Openertabid

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

      Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка «Открытие» должна быть в том же окне, что и эта вкладка.

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

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

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

    • выбрано

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

      Устарело

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

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

    • URL

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

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

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

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

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

    (tab?: Tab) => void

    • вкладка

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

      Подробная информация о обновленной вкладке. Объект tabs.Tab не содержит url , pendingUrl , title и favIconUrl , если разрешение "tabs" не было запрошено.

Возврат

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

    Хром 88+

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

События

onActivated

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

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

Параметры

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

    функция

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

    (activeInfo: object) => void

    • ActiveInfo

      объект

      • табид

        число

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

      • Windowid

        число

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

onActiveChanged

≤ MV2 устарел
chrome.tabs.onActiveChanged.addListener(
  callback: function,
)

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

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

Параметры

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

    функция

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

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

    • табид

      число

    • selectInfo

      объект

      • Windowid

        число

        Идентификатор окна выбрана выбранная вкладка внутри.

onAttached

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

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

Параметры

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

    функция

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

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

    • табид

      число

    • Attachinfo

      объект

      • новичка

        число

      • Newwindowid

        число

onCreated

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

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

Параметры

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

    функция

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

    (tab: Tab) => void

onDetached

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

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

Параметры

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

    функция

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

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

    • табид

      число

    • Detachinfo

      объект

      • OldPosition

        число

      • OldWindowid

        число

onHighlightChanged

≤ MV2 устарел
chrome.tabs.onHighlightChanged.addListener(
  callback: function,
)

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

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

Параметры

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

    функция

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

    (selectInfo: object) => void

    • selectInfo

      объект

      • табиды

        число[]

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

      • Windowid

        число

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

onHighlighted

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

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

Параметры

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

    функция

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

    (highlightInfo: object) => void

    • hightingInfo

      объект

      • табиды

        число[]

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

      • Windowid

        число

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

onMoved

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

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

Параметры

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

    функция

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

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

    • табид

      число

    • MoveInfo

      объект

      • от Index

        число

      • Toindex

        число

      • Windowid

        число

onRemoved

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

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

Параметры

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

    функция

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

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

    • табид

      число

    • Удалить

      объект

      • IswindowClowing

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

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

      • Windowid

        число

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

onReplaced

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

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

Параметры

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

    функция

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

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

    • Добавлент

      число

    • Удаленабид

      число

onSelectionChanged

≤ MV2 устарел
chrome.tabs.onSelectionChanged.addListener(
  callback: function,
)

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

Пожары при изменении выбранной вкладки в окне.

Параметры

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

    функция

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

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

    • табид

      число

    • selectInfo

      объект

      • Windowid

        число

        Идентификатор окна выбрана выбранная вкладка внутри.

onUpdated

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

Уволен, когда обновляется вкладка.

Параметры

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

    функция

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

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

    • табид

      число

    • changeinfo

      объект

      • слышимый

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

        Хром 45+

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

      • Автодискабельно

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

        Хром 54+

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

      • выброшенный

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

        Хром 54+

        Новое выброшенное состояние вкладки.

      • Faviconurl

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

        Новый URL -адрес вкладки.

      • идентификатор группы

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

        Хром 88+

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

      • mutedinfo

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

        Хром 46+

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

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

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

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

      • статус

        Табстатус необязательно

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

      • заголовок

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

        Хром 48+

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

      • URL

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

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

    • вкладка

onZoomChange

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

Уволен, когда вкладка увеличивается.

Параметры

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

    функция

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

    (ZoomChangeInfo: object) => void