Описание
 Используйте 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.
}
Примеры расширений
Для дополнительных демонстраций расширений API вкладок ознакомьтесь с любым из следующих источников:
Типы
MutedInfo
Состояние отключения звука вкладки и причина последнего изменения состояния.
Характеристики
- extensionIdстрока необязательная Идентификатор расширения, изменившего состояние отключения звука. Не устанавливается, если расширение не было причиной последнего изменения состояния отключения звука. 
- приглушенныйбулев Отключен ли звук на вкладке (запрещено ли воспроизведение звука). Вкладка может быть отключена, даже если звук не воспроизводится или не воспроизводится в данный момент. Аналогично отображению индикатора «Звук отключен». 
- причинаMutedInfoReason необязательно Причина отключения или включения звука на вкладке. Не устанавливается, если состояние отключения звука на вкладке никогда не менялось. 
MutedInfoReason
Событие, вызвавшее изменение состояния звука.
Перечисление
 "пользователь"  "захватывать"  "расширение"
 Действие пользовательского ввода устанавливает отключенное состояние. 
 Был запущен захват вкладки, что привело к принудительному изменению состояния звука. 
 Расширение, идентифицированное полем extensionId, устанавливает отключенное состояние.
Tab
Характеристики
- активныйбулев Активна ли вкладка в своём окне. Это не обязательно означает, что окно находится в фокусе. 
- слышимыйлогическое необязательное Хром 45+Издавал ли вкладка звук за последние несколько секунд (но он может быть не слышен, если звук отключен). Аналогично тому, отображается ли индикатор «Аудио динамика». 
- autoDiscardableбулев Хром 54+Может ли браузер автоматически закрывать вкладку при недостатке ресурсов. 
- выброшенбулев Хром 54+Удалённая вкладка. Удалённая вкладка — это вкладка, содержимое которой было выгружено из памяти, но всё ещё отображается на панели вкладок. Её содержимое будет загружено заново при следующей активации. 
- favIconUrlстрока необязательная URL-адрес значка вкладки. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs"или разрешение на размещение страницы на хосте. Также может быть пустой строкой, если вкладка загружается.
- замороженныйбулев Хром 132+Заморожена ли вкладка. Замороженная вкладка не может выполнять задачи, включая обработчики событий и таймеры. Она отображается на панели вкладок, а её содержимое загружается в память. Она размораживается при активации. 
- groupIdчисло Хром 88+Идентификатор группы, к которой принадлежит вкладка. 
- высотаномер необязательно Высота вкладки в пикселях. 
- выделенобулев Выделена ли вкладка. 
- идентификаторномер необязательно Идентификатор вкладки. Идентификаторы вкладок уникальны в рамках сеанса браузера. В некоторых случаях вкладке может быть не назначен идентификатор, например, при запросе внешних вкладок с помощью API sessions, в этом случае идентификатор сеанса может присутствовать. Для приложений и окон инструментов разработчика идентификатор вкладки также можно задать какchrome.tabs.TAB_ID_NONE.
- инкогнитобулев Находится ли вкладка в окне в режиме инкогнито. 
- индексчисло Отсчитываемый от нуля индекс вкладки в ее окне. 
- последний доступчисло Хром 121+Время последнего момента, когда вкладка стала активной в своем окне, отображается как количество миллисекунд с начала эпохи. 
- mutedInfoMutedInfo (необязательно) Хром 46+Состояние отключения звука вкладки и причина последнего изменения состояния. 
- openerTabIdномер необязательно Идентификатор вкладки, открывшей данную вкладку, если таковая имеется. Это свойство присутствует только в том случае, если открывающая вкладка всё ещё существует. 
- pendingUrlстрока необязательная Хром 79+URL-адрес, на который ведет вкладка, до её фиксации. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs"или разрешение хоста для страницы и есть ожидающая навигация.
- закрепленныйбулев Закреплена ли вкладка. 
- выбранныйбулев УстаревшийПожалуйста, используйте tabs.Tab.highlighted.Выбрана ли вкладка. 
- sessionIdстрока необязательная Идентификатор сеанса, используемый для уникальной идентификации вкладки, полученной из API sessions.
- статусTabStatus необязательно Статус загрузки вкладки. 
- заголовокстрока необязательная Заголовок вкладки. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs"или разрешение на размещение страницы.
- URL-адресстрока необязательная Последний зафиксированный URL основного фрейма вкладки. Это свойство присутствует только в том случае, если у расширения есть разрешение "tabs"или разрешение хоста для страницы. Может быть пустой строкой, если вкладка ещё не зафиксирована. См. такжеTab.pendingUrl.
- ширинаномер необязательно Ширина вкладки в пикселях. 
- windowIdчисло Идентификатор окна, содержащего вкладку. 
TabStatus
Статус загрузки вкладки.
Перечисление
 "разгруженный"   "загрузка"   "полный" 
WindowType
Тип окна.
Перечисление
 "нормальный"   "неожиданно возникнуть"   "панель"   "приложение"   "devtools" 
ZoomSettings
Определяет, как и в каком диапазоне обрабатываются изменения масштаба на вкладке.
Характеристики
- defaultZoomFactorномер необязательно Хром 43+Используется для возврата уровня масштабирования по умолчанию для текущей вкладки при вызовах tabs.getZoomSettings. 
- режимZoomSettingsMode (необязательно) Определяет, как обрабатываются изменения масштаба, т. е. какая сущность отвечает за фактическое масштабирование страницы; по умолчанию — automatic.
- объемZoomSettingsScope (опционально) Определяет, сохраняются ли изменения масштаба для исходного положения страницы или вступают в силу только для этой вкладки; по умолчанию применяется к per-originвautomaticрежиме иper-tabв противном случае.
ZoomSettingsMode
 Определяет, как обрабатываются изменения масштаба, т. е. какая сущность отвечает за фактическое масштабирование страницы; по умолчанию — automatic . 
Перечисление
 "автоматический"  "руководство"  "неполноценный"
 Изменения масштаба обрабатываются браузером автоматически. 
 Переопределяет автоматическую обработку изменения масштаба. Событие onZoomChange по-прежнему будет отправляться, и расширение обязано отслеживать это событие и вручную масштабировать страницу. Этот режим не поддерживает масштабирование per-origin , поэтому игнорирует настройку масштабирования scope и предполагает масштабирование per-tab . 
 Отключает масштабирование на вкладке. Вкладка возвращается к уровню масштабирования по умолчанию, и все попытки изменить масштаб игнорируются.
ZoomSettingsScope
 Определяет, сохраняются ли изменения масштаба для исходного положения страницы или вступают в силу только для этой вкладки; по умолчанию применяется к per-origin в automatic режиме и per-tab в противном случае. 
Перечисление
 "по происхождению"  "на вкладку"
 Изменения масштаба сохраняются в исходной точке увеличенной страницы, то есть все остальные вкладки, переключенные в ту же исходную точку, также масштабируются. Более того, изменения масштаба per-origin сохраняются вместе с исходной точкой, что означает, что при переходе на другие страницы в той же исходной точке все они будут масштабированы с одинаковым коэффициентом масштабирования. Масштабирование per-origin доступно только в automatic режиме. 
 Изменения масштаба применяются только к этой вкладке, а изменения масштаба на других вкладках не влияют на масштаб этой вкладки. Кроме того, изменения масштаба per-tab сбрасываются при навигации; при навигации по вкладке страницы всегда загружаются с коэффициентами масштабирования per-origin .
Характеристики
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
 Максимальное количество вызовов captureVisibleTab в секунду. captureVisibleTab — ресурсоемкая функция, и ее не следует вызывать слишком часто. 
Ценить
 2 
TAB_ID_NONE
Идентификатор, обозначающий отсутствие вкладки браузера.
Ценить
 -1 
TAB_INDEX_NONE
Индекс, представляющий отсутствие индекса табуляции в tab_strip.
Ценить
 -1 
Методы
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
): Promise<string>
Захватывает видимую область активной вкладки в указанном окне. Для вызова этого метода расширение должно иметь разрешение <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.Port
 Подключается к скрипту(ам) контента на указанной вкладке. Событие runtime.onConnect вызывается в каждом скрипте контента, запущенном на указанной вкладке для текущего расширения. Подробнее см. в разделе «Сообщения скрипта контента» . 
Параметры
- tabIdчисло 
- connectInfoобъект необязательный - documentIdстрока необязательная Хром 106+Откройте порт для конкретного документа , идентифицированного по documentId, а не для всех фреймов на вкладке.
- frameIdномер необязательно Откройте порт для конкретного фрейма , идентифицированного по frameId, а не для всех фреймов на вкладке.
- имястрока необязательная Передается в onConnect для скриптов содержимого, которые прослушивают событие подключения. 
 
Возврат
- Порт, который можно использовать для связи со скриптами содержимого, работающими на указанной вкладке. Событие - runtime.Portпорта срабатывает, если вкладка закрывается или отсутствует.
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
): Promise<Tab>
Создает новую вкладку.
Параметры
- 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,
): Promise<string>
Определяет основной язык содержимого на вкладке.
Параметры
- tabIdномер необязательно По умолчанию активная вкладка текущего окна . 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(language: string) => void - языкнить Код языка ISO, например enилиfr. Полный список языков, поддерживаемых этим методом, см. в таблице kLanguageInfoTable . Проверяются столбцы со второго по четвёртый, и возвращается первое ненулевое значение, за исключением упрощённого китайского языка, для которого возвращаетсяzh-CN. Для неизвестного/неопределённого языка возвращаетсяund.
 
Возврат
- Обещание<строка> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
): Promise<Tab | undefined>
Удаляет вкладку из памяти. Удалённые вкладки остаются на панели вкладок и загружаются заново при активации.
Параметры
- tabIdномер необязательно Идентификатор вкладки, которую нужно удалить. Если этот параметр указан, вкладка удаляется, если она не активна или уже удалена. Если этот параметр не указан, браузер удаляет наименее важную вкладку. Это может привести к ошибке, если нет вкладок, которые можно удалить. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(tab?: Tab) => void - вкладкаВкладка необязательна Отброшенная вкладка, если она была успешно отброшена; в противном случае не определено. 
 
Возврат
- Обещание< Tab | не определено> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
): Promise<Tab | undefined>
Дублирует вкладку.
Параметры
- tabIdчисло Идентификатор вкладки, которую нужно дублировать. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(tab?: Tab) => void 
Возврат
- Обещание< Tab | не определено> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<any[] | undefined>
 Заменено на scripting.executeScript в Manifest V3.
Внедряет код JavaScript на страницу. Подробнее см. в разделе «Программное внедрение» в документации по скриптам контента.
Параметры
- tabIdномер необязательно Идентификатор вкладки, в которой будет запущен скрипт; по умолчанию это активная вкладка текущего окна. 
- подробностиПодробная информация о скрипте для запуска. Необходимо задать либо код, либо свойство файла, но оба одновременно задать нельзя. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result?: any[]) => void - результатлюбой[] необязательный Результат работы скрипта в каждом внедренном кадре. 
 
Возврат
- Обещание<любой[] | неопределенный> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
get()
chrome.tabs.get(
tabId: number,
callback?: function,
): Promise<Tab>
Возвращает сведения об указанной вкладке.
Параметры
- tabIdчисло 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(tab: Tab) => void - вкладка
 
Возврат
- Обещание< Tab > Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
): Promise<Tab[]>
 Пожалуйста, используйте tabs.query {windowId: windowId} .
Получает сведения обо всех вкладках в указанном окне.
Параметры
- windowIdномер необязательно По умолчанию используется текущее окно . 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(tabs: Tab[]) => void - вкладкиВкладка [] 
 
Возврат
- Обещание< Tab []> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
): Promise<Tab | undefined>
 Возвращает вкладку, из которой выполняется вызов этого скрипта. Возвращает значение undefined если вызывается из контекста, отличного от вкладки (например, фоновой страницы или всплывающего окна). 
Параметры
Возврат
- Обещание< Tab | не определено> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
): Promise<Tab>
 Пожалуйста, используйте tabs.query {active: true} .
Возвращает вкладку, выбранную в указанном окне.
Параметры
- windowIdномер необязательно По умолчанию используется текущее окно . 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(tab: Tab) => void - вкладка
 
Возврат
- Обещание< Tab > Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
): Promise<number>
Получает текущий коэффициент масштабирования указанной вкладки.
Параметры
- tabIdномер необязательно Идентификатор вкладки, из которой необходимо получить текущий коэффициент масштабирования; по умолчанию — активная вкладка текущего окна. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(zoomFactor: number) => void - zoomFactorчисло Текущий коэффициент масштабирования вкладки. 
 
Возврат
- Обещание<номер> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
): Promise<ZoomSettings>
Получает текущие настройки масштабирования указанной вкладки.
Параметры
- tabIdномер необязательно Идентификатор вкладки, из которой необходимо получить текущие настройки масштаба; по умолчанию — активная вкладка текущего окна. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(zoomSettings: ZoomSettings) => void - ZoomSettingsТекущие настройки масштабирования вкладки. 
 
Возврат
- Обещание< Настройки Zoom > Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
): Promise<void>
Вернитесь на предыдущую страницу, если она доступна.
Параметры
- tabIdномер необязательно Идентификатор вкладки для возврата назад; по умолчанию — выбранная вкладка текущего окна. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
): Promise<void>
Перейдите на следующую страницу, если она доступна.
Параметры
- tabIdномер необязательно Идентификатор вкладки для перехода вперед; по умолчанию — выбранная вкладка текущего окна. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
group()
chrome.tabs.group(
options: object,
callback?: function,
): Promise<number>
Добавляет одну или несколько вкладок в указанную группу или, если группа не указана, добавляет указанные вкладки во вновь созданную группу.
Параметры
- параметрыобъект - createPropertiesобъект необязательный Конфигурации для создания группы. Невозможно использовать, если groupId уже указан. - windowIdномер необязательно Окно новой группы. По умолчанию — текущее окно. 
 
- groupIdномер необязательно Идентификатор группы, в которую нужно добавить вкладки. Если не указан, будет создана новая группа. 
- tabIdsчисло | [число, ...число[]] Идентификатор вкладки или список идентификаторов вкладок для добавления в указанную группу. 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(groupId: number) => void - groupIdчисло Идентификатор группы, в которую были добавлены вкладки. 
 
Возврат
- Обещание<номер> - Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
): Promise<windows.Window>
Выделяет указанные вкладки и фокусируется на первой из группы. Не выполняет никаких действий, если указанная вкладка активна.
Параметры
- highlightInfoобъект - вкладкиномер | номер[] Один или несколько индексов вкладок для выделения. 
- windowIdномер необязательно Окно, содержащее вкладки. 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(window: Window) => void - окноСодержит сведения об окне, вкладки которого были выделены. 
 
Возврат
- Обещание< windows.Window > Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<void>
 Заменено на scripting.insertCSS в Manifest V3.
 Внедряет CSS на страницу. Стили, вставленные этим методом, можно удалить с помощью scripting.removeCSS . Подробнее см. в разделе о программном внедрении в документации по скриптам контента. 
Параметры
- tabIdномер необязательно Идентификатор вкладки, в которую следует вставить CSS; по умолчанию это активная вкладка текущего окна. 
- подробностиПодробная информация о CSS-тексте для вставки. Необходимо задать либо код, либо свойство файла, но оба одновременно задать нельзя. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
): Promise<Tab | Tab[]>
Перемещает одну или несколько вкладок на новое место в пределах окна или в новое окно. Обратите внимание, что вкладки можно перемещать только в обычные окна (window.type === "normal") и из них.
Параметры
- tabIdsномер | номер[] Идентификатор вкладки или список идентификаторов вкладок для перемещения. 
- movePropertiesобъект - индексчисло Позиция, в которую следует переместить окно. Используйте -1, чтобы поместить вкладку в конец окна.
- windowIdномер необязательно По умолчанию используется окно, в котором в данный момент находится вкладка. 
 
- перезвонитьфункция необязательна 
Возврат
- Хром 88+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
): Promise<Tab[]>
Получает все вкладки, имеющие указанные свойства, или все вкладки, если свойства не указаны.
Параметры
- queryInfoобъект - активныйлогическое необязательное Активны ли вкладки в своих окнах. 
- слышимыйлогическое необязательное Хром 45+Слышны ли вкладки. 
- autoDiscardableлогическое необязательное Хром 54+Может ли браузер автоматически закрывать вкладки при нехватке ресурсов. 
- текущее окнологическое необязательное Находятся ли вкладки в текущем окне . 
- выброшенлогическое необязательное Хром 54+Удалены ли вкладки. Удалённая вкладка — это вкладка, содержимое которой было выгружено из памяти, но всё ещё отображается на панели вкладок. Её содержимое будет загружено заново при следующей активации. 
- замороженныйлогическое необязательное Хром 132+Заморожены ли вкладки. Замороженная вкладка не может выполнять задачи, включая обработчики событий и таймеры. Она отображается на панели вкладок, а её содержимое загружается в память. Она размораживается при активации. 
- groupIdномер необязательно Хром 88+Идентификатор группы, в которой находятся вкладки, или tabGroups.TAB_GROUP_ID_NONEдля несгруппированных вкладок.
- выделенологическое необязательное Подсвечиваются ли вкладки. 
- индексномер необязательно Положение вкладок в окнах. 
- lastFocusedWindowлогическое необязательное Находятся ли вкладки в последнем активном окне. 
- приглушенныйлогическое необязательное Хром 45+Отключены ли вкладки. 
- закрепленныйлогическое необязательное Закреплены ли вкладки. 
- splitViewIdномер необязательно Хром 140+Идентификатор разделенного представления, в котором находятся вкладки, или 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,
): Promise<void>
Перезагрузить вкладку.
Параметры
- tabIdномер необязательно Идентификатор вкладки для перезагрузки; по умолчанию — выбранная вкладка текущего окна. 
- reloadPropertiesобъект необязательный - bypassCacheлогическое необязательное Обходить ли локальное кэширование. Значение по умолчанию — false.
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
): Promise<void>
Закрывает одну или несколько вкладок.
Параметры
- tabIdsномер | номер[] Идентификатор вкладки или список идентификаторов вкладок, которые необходимо закрыть. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
): Promise<void>
 Заменено на scripting.removeCSS в Manifest V3.
 Удаляет со страницы CSS, который ранее был внедрен с помощью вызова scripting.insertCSS . 
Параметры
- tabIdномер необязательно Идентификатор вкладки, из которой необходимо удалить CSS; по умолчанию — активная вкладка текущего окна. 
- подробностиПодробная информация о CSS-тексте, который нужно удалить. Необходимо задать либо код, либо свойство файла, но оба одновременно задать нельзя. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
): Promise<any>
 Отправляет одно сообщение скрипту(ам) контента на указанной вкладке с необязательным обратным вызовом, который запускается при получении ответа. Событие runtime.onMessage активируется в каждом скрипте контента, запущенном на указанной вкладке для текущего расширения. 
Параметры
- tabIdчисло 
- сообщениелюбой Сообщение для отправки. Это сообщение должно быть объектом, поддерживающим формат JSON. 
- параметрыобъект необязательный 
- перезвонитьфункция необязательна Хром 99+Параметр callbackвыглядит так:(response: any) => void - ответлюбой Объект ответа JSON, отправленный обработчиком сообщения. Если при подключении к указанной вкладке возникает ошибка, функция обратного вызова вызывается без аргументов, а runtime.lastErrorзаписывается сообщение об ошибке.
 
Возврат
- Обещание<любое> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
): Promise<any>
 Используйте runtime.sendMessage .
 Отправляет один запрос к скрипту(ам) контента на указанной вкладке с необязательным обратным вызовом, который запускается при получении ответа. Событие extension.onRequest активируется в каждом скрипте контента, запущенном на указанной вкладке для текущего расширения. 
Параметры
- tabIdчисло 
- запрослюбой 
- перезвонитьфункция необязательна Хром 99+Параметр callbackвыглядит так:(response: any) => void - ответлюбой Объект ответа JSON, отправленный обработчиком запроса. Если при подключении к указанной вкладке возникает ошибка, функция обратного вызова вызывается без аргументов, а runtime.lastErrorзаписывается сообщение об ошибке.
 
Возврат
- Обещание<любое> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
): Promise<void>
Увеличивает указанную вкладку.
Параметры
- tabIdномер необязательно Идентификатор вкладки для масштабирования; по умолчанию — активная вкладка текущего окна. 
- zoomFactorчисло Новый коэффициент масштабирования. Значение 0устанавливает текущий коэффициент масштабирования по умолчанию для вкладки. Значения больше0задают коэффициент масштабирования (возможно, отличный от коэффициента по умолчанию) для вкладки.
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
): Promise<void>
Задаёт параметры масштабирования для указанной вкладки, определяющие, как будут обрабатываться изменения масштаба. При переходе по вкладке эти настройки сбрасываются к значениям по умолчанию.
Параметры
- tabIdномер необязательно Идентификатор вкладки, для которой необходимо изменить настройки масштаба; по умолчанию это активная вкладка текущего окна. 
- ZoomSettingsОпределяет, как и в каком диапазоне обрабатываются изменения масштаба. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 88+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
): Promise<void>
Удаляет одну или несколько вкладок из соответствующих групп. Если какие-либо группы становятся пустыми, они удаляются.
Параметры
- tabIdsчисло | [число, ...число[]] Идентификатор вкладки или список идентификаторов вкладок, которые следует удалить из соответствующих групп. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> - Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
): Promise<Tab | undefined>
 Изменяет свойства вкладки. Свойства, не указанные в updateProperties , не изменяются. 
Параметры
- tabIdномер необязательно По умолчанию используется выбранная вкладка текущего окна . 
- updatePropertiesобъект - активныйлогическое необязательное Должна ли вкладка быть активной. Не влияет на то, находится ли окно в фокусе (см. windows.update).
- autoDiscardableлогическое необязательное Хром 54+Должна ли вкладка автоматически закрываться браузером при низком уровне ресурсов. 
- выделенологическое необязательное Добавляет или удаляет вкладку из текущего выбора. 
- приглушенныйлогическое необязательное Хром 45+Должен ли звук на вкладке быть отключен. 
- openTabIdномер необязательно Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка открытия должна находиться в том же окне, что и эта вкладка. 
- закрепленныйлогическое значение необязательно Должна ли быть закреплена вкладка. 
- выбранныйлогическое значение необязательно УстаревшийПожалуйста, используйте выделенный . Следует ли выбирать вкладку. 
- URL-адресстрока необязательна URL-адрес для перехода по вкладке. URL-адреса JavaScript не поддерживаются; вместо этого используйте scripting.executeScript.
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(tab?: Tab) => void 
Возврат
- Обещание< Вкладка | не определено> Хром 88+- Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
События
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Срабатывает при изменении активной вкладки в окне. Обратите внимание, что URL-адрес вкладки может не быть установлен во время запуска этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления, когда URL-адрес установлен.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(activeInfo: object) => void - активинфообъект - tabIdчисло Идентификатор вкладки, которая стала активной. 
- идентификатор окначисло Идентификатор окна, внутри которого изменилась активная вкладка. 
 
 
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
 Пожалуйста, используйте tabs.onActivated .
 Срабатывает при изменении выбранной вкладки в окне. Обратите внимание, что URL-адрес вкладки может не быть установлен во время запуска этого события, но вы можете прослушивать события tabs.onUpdated , чтобы получать уведомления, когда URL-адрес установлен. 
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, selectInfo: object) => void - tabIdчисло 
- выберитеИнформацияобъект - идентификатор окначисло Идентификатор окна, внутри которого изменилась выбранная вкладка. 
 
 
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Вызывается, когда к окну прикреплена вкладка; например, потому что он был перемещен между окнами.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, attachInfo: object) => void - tabIdчисло 
- AttachInfoобъект - новая позициячисло 
- новыйWindowIdчисло 
 
 
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Вызывается при создании вкладки. Обратите внимание, что URL-адрес вкладки и членство в группе вкладок могут быть не установлены во время запуска этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления, когда URL-адрес установлен или вкладка добавляется в группу вкладок.
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Вызывается, когда вкладка отделена от окна; например, потому что он был перемещен между окнами.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, detachInfo: object) => void - tabIdчисло 
- отсоединитьинформациюобъект - старая позициячисло 
- старыйWindowIdчисло 
 
 
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
 Пожалуйста, используйте tabs.onHighlighted .
Вызывается при изменении выделенных или выбранных вкладок в окне.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(selectInfo: object) => void - выберитеИнформацияобъект - tabIdsчисло[] Все выделенные вкладки в окне. 
- идентификатор окначисло Окно, вкладки которого менялись. 
 
 
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Вызывается при изменении выделенных или выбранных вкладок в окне.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(highlightInfo: object) => void - ВыделитеИнформациюобъект - tabIdsчисло[] Все выделенные вкладки в окне. 
- идентификатор окначисло Окно, вкладки которого менялись. 
 
 
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
 Вызывается при перемещении вкладки внутри окна. Запускается только одно событие перемещения, представляющее вкладку, которую непосредственно переместил пользователь. События перемещения не запускаются для других вкладок, которые должны перемещаться в ответ на перемещение вкладки вручную. Это событие не вызывается при перемещении вкладки между окнами; подробности см. в tabs.onDetached . 
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, moveInfo: object) => void - tabIdчисло 
- moveInfoобъект - отиндексчисло 
- toIndexчисло 
- идентификатор окначисло 
 
 
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Вызывается при закрытии вкладки.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, removeInfo: object) => void - tabIdчисло 
- удалитьинформациюобъект - isWindowClosingбулев Истинно, когда вкладка была закрыта, поскольку ее родительское окно было закрыто. 
- идентификатор окначисло Окно, вкладка которого закрыта. 
 
 
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Вызывается, когда вкладка заменяется другой вкладкой из-за предварительной отрисовки или мгновенного отображения.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(addedTabId: number, removedTabId: number) => void - добавленныйTabIdчисло 
- удаленныйTabIdчисло 
 
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
 Пожалуйста, используйте tabs.onActivated .
Срабатывает при изменении выбранной вкладки в окне.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, selectInfo: object) => void - tabIdчисло 
- выберитеИнформацияобъект - идентификатор окначисло Идентификатор окна, внутри которого изменилась выбранная вкладка. 
 
 
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Вызывается при обновлении вкладки.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(tabId: number, changeInfo: object, tab: Tab) => void - tabIdчисло 
- изменениеИнформацияобъект - слышимыйлогическое значение необязательно Хром 45+Новое звуковое состояние вкладки. 
- автосбрасываемыйлогическое значение необязательно Хром 54+Новое состояние автоматического удаления вкладки. 
- выброшенлогическое значение необязательно Хром 54+Новое отброшенное состояние вкладки. 
- favIconUrlстрока необязательна Новый URL-адрес значка вкладки. 
- замороженныйлогическое значение необязательно Хром 132+Новое замороженное состояние вкладки. 
- идентификатор группыномер необязательно Хром 88+Новая группа вкладки. 
- mutedInfoMutedInfo необязательно Хром 46+Новое отключенное состояние вкладки и причина изменения. 
- закрепленныйлогическое значение необязательно Новое закрепленное состояние вкладки. 
- сплитвиевидномер необязательно Хром 140+Новый разделенный вид вкладки. 
- статусTabStatus необязательно Статус загрузки вкладки. 
- заголовокстрока необязательна Хром 48+Новое название вкладки. 
- URL-адресстрока необязательна URL-адрес вкладки, если он изменился. 
 
- вкладка
 
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Вызывается при масштабировании вкладки.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(ZoomChangeInfo: object) => void - ZoomChangeИнформацияобъект - новыйZoomFactorчисло 
- старыйZoomFactorчисло 
- tabIdчисло 
- зумНастройки