Описание
Используйте 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"
],
...
}
Варианты использования
В следующих разделах показаны некоторые распространенные сценарии использования.
Открытие страницы расширения в новой вкладке
Распространенный подход к созданию расширений заключается в открытии страницы ознакомления в новой вкладке после установки расширения. Следующий пример показывает, как это сделать.
background.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
Состояние вкладки (отключено) и причина последнего изменения состояния.
Характеристики
- extensionId
строка необязательный
Идентификатор расширения, изменившего состояние отключения звука. Не задается, если расширение не являлось причиной последнего изменения состояния отключения звука.
- приглушенный
логический
Отключен ли звук на вкладке (запрещено ли воспроизведение звука). Вкладка может быть отключена, даже если она не воспроизводила или в данный момент не воспроизводит звук. Аналогично тому, отображается ли индикатор «отключен звук».
- причина
MutedInfoReason ( необязательно)
Причина включения или выключения звука для вкладки. Не устанавливается, если состояние отключения звука для вкладки никогда не менялось.
MutedInfoReason
Событие, вызвавшее незначительное изменение состояния.
Перечисление
"пользователь" "захватывать" "расширение"
Действие, выполняемое пользователем, устанавливает состояние отключения звука.
Начался захват вкладок, что привело к изменению состояния отключения звука.
Расширение, идентифицируемое по полю extensionId, устанавливает состояние "заглушено".
Tab
Характеристики
- активный
логический
Активна ли вкладка в своем окне. Это не обязательно означает, что окно находится в фокусе.
- слышимый
логический необязательный
Chrome 45+Указывает, издавала ли вкладка звук в течение последних нескольких секунд (но он может быть не слышен, если звук также отключен). Аналогично тому, отображается ли индикатор «звук из динамиков».
- автоматически удаляемый
логический
Chrome 54+Можно ли автоматически закрыть вкладку браузером при нехватке ресурсов?
- выброшенный
логический
Chrome 54+Удалена ли вкладка. Удаленная вкладка — это вкладка, содержимое которой было выгружено из памяти, но которая все еще видна на панели вкладок. Ее содержимое загружается заново при следующем ее активации.
- favIconUrl
строка необязательный
URL значка вкладки (favicon). Это свойство присутствует только в том случае, если расширение имеет разрешение
"tabs"или имеет права хоста для страницы. Оно также может быть пустой строкой, если вкладка загружается. - замороженный
логический
Chrome 132+Заморожена ли вкладка. Замороженная вкладка не может выполнять задачи, включая обработчики событий или таймеры. Она видна на панели вкладок, и её содержимое загружается в память. Она размораживается при активации.
- groupId
число
Chrome 88+Идентификатор группы, к которой принадлежит вкладка.
- высота
число необязательно
Высота вкладки в пикселях.
- выделенный
логический
Выделена ли вкладка.
- идентификатор
число необязательно
Идентификатор вкладки. Идентификаторы вкладок уникальны в рамках одной сессии браузера. В некоторых случаях вкладке может не быть присвоен идентификатор; например, при запросе к сторонним вкладкам с помощью API
sessions, в этом случае может присутствовать идентификатор сессии. Идентификатор вкладки также может быть установлен в значениеchrome.tabs.TAB_ID_NONEдля приложений и окон инструментов разработчика. - инкогнито
логический
Находится ли вкладка в режиме инкогнито.
- индекс
число
Индекс вкладки в пределах её окна, начинающийся с нуля.
- последний доступ
число
Chrome 121+Время последнего включения вкладки в окне определяется количеством миллисекунд с начала эпохи.
- mutedInfo
MutedInfo ( необязательно)
Chrome 46+Состояние вкладки (отключено) и причина последнего изменения состояния.
- openerTabId
число необязательно
Идентификатор вкладки, открывшей эту вкладку (если таковая имеется). Это свойство присутствует только в том случае, если открывающая вкладка все еще существует.
- ожидающийUrl
строка необязательный
Chrome 79+URL-адрес, на который переходит вкладка до подтверждения перехода. Это свойство присутствует только в том случае, если расширение имеет разрешение на доступ
"tabs"или имеет права хоста для страницы и имеется незавершенная навигация. - закреплено
логический
Закреплена ли вкладка.
- выбранный
логический
УстаревшийПожалуйста, используйте
tabs.Tab.highlighted.Выбрана ли вкладка.
- sessionId
строка необязательный
Идентификатор сессии, используемый для однозначной идентификации вкладки, полученный из API
sessions. - splitViewId
число необязательно
Chrome 140+Идентификатор режима разделенного экрана, к которому относится вкладка.
- статус
TabStatus ( необязательно)
Статус загрузки вкладки.
- заголовок
строка необязательный
Заголовок вкладки. Это свойство присутствует только в том случае, если расширение имеет разрешение на доступ
"tabs"или имеет права доступа к странице со стороны хоста. - url
строка необязательный
Последний зафиксированный URL-адрес основного фрейма вкладки. Это свойство присутствует только в том случае, если расширение имеет разрешение
"tabs"или имеет разрешения хоста для страницы. Может быть пустой строкой, если вкладка еще не зафиксирована. См. такжеTab.pendingUrl. - ширина
число необязательно
Ширина вкладки в пикселях.
- windowId
число
Идентификатор окна, содержащего вкладку.
TabStatus
Статус загрузки вкладки.
Перечисление
"разгружено" "загрузка" "полный"
WindowType
Тип окна.
Перечисление
"нормальный" "неожиданно возникнуть" "панель" "приложение" "инструменты разработчика"
ZoomSettings
Определяет, как обрабатываются изменения масштабирования во вкладке и в какой области.
Характеристики
- defaultZoomFactor
число необязательно
Chrome 43+Используется для возврата уровня масштабирования по умолчанию для текущей вкладки в вызовах функции tabs.getZoomSettings.
- режим
ZoomSettingsMode (необязательно)
Определяет способ обработки изменений масштабирования, т.е. какой объект отвечает за фактическое масштабирование страницы; по умолчанию используется
automatic. - объем
ZoomSettingsScope ( необязательно)
Определяет, сохраняются ли изменения масштабирования для исходной страницы или вступают в силу только в этой вкладке; по умолчанию, в
automaticрежиме, масштабирование применяется коper-origin, в противном случае —per-tab.
ZoomSettingsMode
Определяет способ обработки изменений масштабирования, т.е. какой объект отвечает за фактическое масштабирование страницы; по умолчанию используется automatic .
Перечисление
"автоматический" "руководство" "неполноценный"
Изменение масштаба обрабатывается браузером автоматически.
Этот режим отменяет автоматическую обработку изменений масштабирования. Событие onZoomChange по-прежнему будет отправляться, и расширение должно отслеживать это событие и вручную масштабировать страницу. Этот режим не поддерживает масштабирование per-origin , поэтому игнорирует настройку масштабирования scope и предполагает масштабирование per-tab .
Отключает все масштабирования во вкладке. Вкладка возвращается к уровню масштабирования по умолчанию, и все попытки изменения масштаба игнорируются.
ZoomSettingsScope
Определяет, сохраняются ли изменения масштабирования для исходной страницы или вступают в силу только в этой вкладке; по умолчанию, в automatic режиме, масштабирование применяется ко per-origin , в противном случае — per-tab .
Перечисление
"по месту происхождения" "за каждую вкладку"
Изменения масштабирования сохраняются в исходной точке масштабирования страницы, то есть все остальные вкладки, на которые осуществляется переход к той же исходной точке, также масштабируются. Более того, изменения масштабирования per-origin сохраняются вместе с исходной точкой, это означает, что при переходе на другие страницы в той же исходной точке все они масштабируются до одного и того же коэффициента масштабирования. Возможность масштабирования per-origin доступна только в automatic режиме.
Изменения масштабирования вступают в силу только в этой вкладке, и изменения масштабирования в других вкладках не влияют на масштабирование этой вкладки. Кроме того, изменения масштабирования per-tab сбрасываются при переходе по вкладке; при переходе по вкладке всегда загружаются страницы с их per-origin коэффициентами масштабирования.
Характеристики
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Максимальное количество вызовов функции captureVisibleTab в секунду. captureVisibleTab является ресурсоемкой и не должна вызываться слишком часто.
Ценить
2
SPLIT_VIEW_ID_NONE
Идентификатор, указывающий на отсутствие разделенной вкладки.
Ценить
-1
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для отображения.
Возвраты
Promise<string>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Устанавливает соединение со скриптами контента на указанной вкладке. Событие runtime.onConnect срабатывает в каждом скрипте контента, работающем на указанной вкладке для текущего расширения. Дополнительные сведения см. в разделе «Обмен сообщениями между скриптами контента» .
Параметры
- tabId
число
- connectInfo
объект необязательный
- documentId
строка необязательный
Chrome 106+Откройте порт для доступа к конкретному документу, идентифицированному по
documentId, вместо всех фреймов на вкладке. - frameId
число необязательно
Откройте порт для конкретного кадра, идентифицированного по
frameIdвместо всех кадров на вкладке. - имя
строка необязательный
Этот параметр передается в функцию onConnect для скриптов контента, которые отслеживают событие подключения.
Возвраты
Порт, используемый для связи со скриптами контента, работающими в указанной вкладке. Событие
runtime.Portэтого порта срабатывает, если вкладка закрывается или не существует.
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
): Promise<Tab>
Создает новую вкладку.
Параметры
- создатьСвойства
объект
- активный
логический необязательный
Определяет, должна ли вкладка стать активной в окне. Не влияет на то, находится ли окно в фокусе (см.
windows.update). По умолчанию —true. - индекс
число необязательно
Положение вкладки в окне. Заданное значение ограничено диапазоном от нуля до количества вкладок в окне.
- openerTabId
число необязательно
Идентификатор вкладки, открывшей эту вкладку. Если указано, открывающая вкладка должна находиться в том же окне, что и вновь созданная вкладка.
- закреплено
логический необязательный
Следует ли закрепить вкладку. По умолчанию —
false - выбранный
логический необязательный
УстаревшийПожалуйста, используйте active .
Определяет, должна ли данная вкладка стать выбранной в окне. По умолчанию —
true - splitWithTabId
число необязательно
Chrome 155+Идентификатор существующей вкладки, для которой будет создано разделение экрана. Если указан, вкладка, для которой будет создано разделение, должна соответствовать следующим условиям:
- Это не должна быть уже разделенная вкладка.
- Оно должно находиться в том же окне, что и только что созданная вкладка.
- Если указан
windowId, он должен совпадать с идентификатором окна, которое нужно разделить на две части. - Если указан
index, он должен быть смежным с вкладкой, которую нужно разделить, и повлияет на относительное положение вновь созданной вкладки.
- url
строка необязательный
URL-адрес, на который будет осуществлен первоначальный переход по вкладке. Полные URL-адреса должны включать схему (например, 'http://www.google.com', а не 'www.google.com'). Относительные URL-адреса указываются относительно текущей страницы в расширении. По умолчанию используется страница новой вкладки.
- windowId
число необязательно
Окно, в котором будет создана новая вкладка. По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab: Tab) => void
- вкладка
Создана вкладка.
Возвраты
Обещание< Вкладка >
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
createSplit()
chrome.tabs.createSplit(
tabIds: [number, number],
callback?: function,
): Promise<number>
Разделяет две существующие вкладки на две части и отображает их в режиме разделенного экрана.
Параметры
- tabIds
[число, число]
Массив, содержащий ровно два идентификатора вкладок, которые необходимо объединить в режиме разделенного экрана. Все вкладки должны соответствовать следующим условиям:
Они должны быть смежными. Они не должны находиться в режиме разделенного экрана. У них должны совпадать состояния
windowId,pinnedиgroupId. - перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(splitViewId: number) => void
- splitViewId
число
Идентификатор вновь созданного разделенного экрана, содержащего указанные вкладки.
Возвраты
Обещание<число>
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
): Promise<string>
Определяет основной язык контента во вкладке.
Параметры
- tabId
число необязательно
По умолчанию используется активная вкладка текущего окна .
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(language: string) => void
- язык
нить
Код языка ISO, например,
enилиfr. Полный список поддерживаемых этим методом языков см. в kLanguageInfoTable . Проверяются второй-четвертый столбцы, и возвращается первое ненулевое значение, за исключением упрощенного китайского языка, для которого возвращаетсяzh-CN. Для неизвестного/неопределенного языка возвращаетсяund.
Возвраты
Promise<string>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
): Promise<Tab | undefined>
Удаляет вкладку из памяти. Удалённые вкладки остаются видимыми на панели вкладок и загружаются заново при активации.
Параметры
- tabId
число необязательно
Идентификатор вкладки, которую необходимо закрыть. Если указан, вкладка закрывается, если она не активна или уже не закрыта. Если не указан, браузер закрывает наименее важную вкладку. Это может не сработать, если нет вкладок, которые можно закрыть.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab?: Tab) => void
- вкладка
Вкладка ( необязательно)
Отменённая вкладка, если она была успешно отменена; в противном случае — не определено.
Возвраты
Promise< Tab | undefined>
Chrome 88+Проблема решается после завершения операции.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
): Promise<Tab | undefined>
Дублирует вкладку.
Параметры
- tabId
число
Идентификатор вкладки, которую нужно скопировать.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab?: Tab) => void
Возвраты
Promise< Tab | undefined>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<any[] | undefined>
В Manifest V3 заменено на scripting.executeScript .
Внедряет JavaScript-код на страницу. Подробности см. в разделе «Программное внедрение » документации по скриптам контента.
Параметры
- tabId
число необязательно
Идентификатор вкладки, в которой будет запущен скрипт; по умолчанию используется активная вкладка текущего окна.
- подробности
Детали запускаемого скрипта. Необходимо указать либо код, либо свойство файла, но одновременно нельзя указывать и то, и другое.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(result?: any[]) => void
- результат
любой[] необязательный
Результат выполнения скрипта в каждом внедренном кадре.
Возвраты
Promise<any[] | undefined>
Chrome 88+Проблема решается после выполнения всего JavaScript-кода.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
get()
chrome.tabs.get(
tabId: number,
callback?: function,
): Promise<Tab>
Получает подробную информацию об указанной вкладке.
Параметры
- tabId
число
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab: Tab) => void
- вкладка
Возвраты
Обещание< Вкладка >
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
): Promise<Tab[]>
Пожалуйста, используйте tabs.query {windowId: windowId} .
Получает подробную информацию обо всех вкладках в указанном окне.
Параметры
- windowId
число необязательно
По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tabs: Tab[]) => void
- вкладки
Вкладка []
Возвраты
Обещание< Вкладка []>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
): Promise<Tab | undefined>
Получает вкладку, из которой выполняется вызов скрипта. Возвращает undefined если вызов производится вне контекста вкладки (например, на фоновой странице или во всплывающем окне).
Параметры
Возвраты
Promise< Tab | undefined>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
): Promise<Tab>
Пожалуйста, используйте tabs.query {active: true} .
Получает вкладку, выбранную в указанном окне.
Параметры
- windowId
число необязательно
По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab: Tab) => void
- вкладка
Возвраты
Обещание< Вкладка >
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
): Promise<number>
Получает текущий коэффициент масштабирования указанной вкладки.
Параметры
- tabId
число необязательно
Идентификатор вкладки, для которой нужно получить текущий коэффициент масштабирования; по умолчанию используется активная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(zoomFactor: number) => void
- zoomFactor
число
Текущий коэффициент масштабирования вкладки.
Возвраты
Обещание<число>
Chrome 88+После получения данных масштаб определяется текущим коэффициентом масштабирования вкладки.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
): Promise<ZoomSettings>
Получает текущие настройки масштабирования указанной вкладки.
Параметры
- tabId
число необязательно
Идентификатор вкладки, для которой будут получены текущие настройки масштабирования; по умолчанию используется активная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(zoomSettings: ZoomSettings) => void
- zoomSettings
Текущие настройки масштабирования вкладки.
Возвраты
Promise< ZoomSettings >
Chrome 88+Проблема решается с использованием текущих настроек масштабирования вкладки.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
): Promise<void>
Если доступна предыдущая страница, вернитесь на неё.
Параметры
- tabId
число необязательно
Идентификатор вкладки, на которую нужно вернуться; по умолчанию используется выбранная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
): Promise<void>
Перейдите на следующую страницу, если она доступна.
Параметры
- tabId
число необязательно
Идентификатор вкладки, на которую нужно перейти; по умолчанию используется выбранная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
group()
chrome.tabs.group(
options: object,
callback?: function,
): Promise<number>
Добавляет одну или несколько вкладок в указанную группу, или, если группа не указана, добавляет указанные вкладки в вновь созданную группу.
Параметры
- параметры
объект
- создатьСвойства
объект необязательный
Настройки для создания группы. Не может использоваться, если 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
- окно
Содержит подробную информацию об окне, вкладки которого были выделены.
Возвраты
Promise< windows.Window >
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
): Promise<void>
В Manifest V3 заменено на scripting.insertCSS .
Внедряет CSS-стили на страницу. Стили, вставленные этим методом, можно удалить с помощью scripting.removeCSS . Подробности см. в разделе программного внедрения в документации по скриптам контента.
Параметры
- tabId
число необязательно
Идентификатор вкладки, в которую следует вставить CSS-код; по умолчанию используется активная вкладка текущего окна.
- подробности
Подробности о вставляемом CSS-тексте. Необходимо указать либо код, либо свойство файла, но одновременно нельзя указывать оба параметра.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Проблема решается после вставки всего CSS-кода.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
): Promise<Tab | Tab[]>
Перемещает одну или несколько вкладок в новое положение внутри своего окна или в новое окно. Обратите внимание, что вкладки можно перемещать только в обычные окна (window.type === "normal") и из них.
Параметры
- tabIds
число | число[]
Идентификатор вкладки или список идентификаторов вкладок для перемещения.
- moveProperties
объект
- индекс
число
Положение, в которое нужно переместить окно. Используйте
-1, чтобы разместить вкладку в конце окна. - windowId
число необязательно
По умолчанию используется окно, в котором в данный момент находится вкладка.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tabs: Tab | Tab[]) => void
Возвраты
- Chrome 88+
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
): Promise<Tab[]>
Получает все вкладки, имеющие указанные свойства, или все вкладки, если свойства не указаны.
Параметры
- queryInfo
объект
- активный
логический необязательный
Активны ли вкладки в соответствующих окнах.
- слышимый
логический необязательный
Chrome 45+Слышны ли звуки от клавиш.
- автоматически удаляемый
логический необязательный
Chrome 54+Можно ли автоматически закрывать вкладки браузером при нехватке ресурсов?
- текущее окно
логический необязательный
Находятся ли вкладки в текущем окне .
- выброшенный
логический необязательный
Chrome 54+Удаляются ли вкладки. Удаленная вкладка — это вкладка, содержимое которой было выгружено из памяти, но которая все еще видна на панели вкладок. Ее содержимое загружается заново при следующем ее открытии.
- замороженный
логический необязательный
Chrome 132+Заморожены ли вкладки. Замороженная вкладка не может выполнять задачи, включая обработчики событий или таймеры. Она видна на панели вкладок, и её содержимое загружается в память. Она размораживается при активации.
- groupId
число необязательно
Chrome 88+Идентификатор группы, к которой относятся вкладки, или
tabGroups.TAB_GROUP_ID_NONEдля вкладок без группировки. - выделенный
логический необязательный
Выделены ли вкладки.
- индекс
число необязательно
Положение вкладок внутри их окон.
- lastFocusedWindow
логический необязательный
Указывается, находятся ли вкладки в последнем активном окне.
- приглушенный
логический необязательный
Chrome 45+Вкладки отключены.
- закреплено
логический необязательный
Закреплены ли вкладки.
- splitViewId
число необязательно
Chrome 140+Идентификатор режима разделенного экрана, в котором находятся вкладки, или
tabs.SPLIT_VIEW_ID_NONEдля вкладок, которые не находятся в режиме разделенного экрана. - статус
TabStatus ( необязательно)
Статус загрузки вкладки.
- заголовок
строка необязательный
Сопоставьте заголовки страниц с заданным шаблоном. Это свойство игнорируется, если расширение не имеет разрешения на доступ
"tabs"или прав доступа хоста к странице. - url
строка | строка[] необязательно
Сопоставление вкладок с одним или несколькими шаблонами URL . Идентификаторы фрагментов не сопоставляются. Это свойство игнорируется, если расширение не имеет разрешения на доступ
"tabs"или разрешений хоста для страницы. - windowId
число необязательно
Идентификатор родительского окна или
windows.WINDOW_ID_CURRENTдля текущего окна . - windowType
WindowType ( необязательно)
Тип окна, в котором находятся вкладки.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(result: Tab[]) => void
- результат
Вкладка []
Возвраты
Обещание< Вкладка []>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
): Promise<void>
Перезагрузите вкладку.
Параметры
- tabId
число необязательно
Идентификатор вкладки для перезагрузки; по умолчанию используется выбранная вкладка текущего окна.
- reloadProperties
объект необязательный
- обходКэш
логический необязательный
Следует ли обходить локальное кэширование. По умолчанию —
false.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
): Promise<void>
Закрывает одну или несколько вкладок.
Параметры
- tabIds
число | число[]
Идентификатор вкладки или список идентификаторов вкладок для закрытия.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
): Promise<void>
В Manifest V3 заменено на scripting.removeCSS .
Удаляет с страницы CSS-код, который был ранее внедрен с помощью вызова метода scripting.insertCSS .
Параметры
- tabId
число необязательно
Идентификатор вкладки, с которой следует удалить CSS; по умолчанию используется активная вкладка текущего окна.
- подробности
Подробности о CSS-тексте, который нужно удалить. Необходимо указать либо код, либо свойство файла, но одновременно нельзя указывать оба параметра.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Проблема решается после удаления всего CSS-кода.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
): Promise<any>
Отправляет одно сообщение скрипту(ам) контента на указанной вкладке. Событие runtime.onMessage срабатывает в каждом скрипте контента, работающем на указанной вкладке для текущего расширения.
Параметры
- tabId
число
- сообщение
любой
Сообщение для отправки. Это сообщение должно представлять собой объект, пригодный для преобразования в формат JSON.
- параметры
объект необязательный
- documentId
строка необязательный
Chrome 106+Отправить сообщение конкретному документу, идентифицированному по
documentId, а не всем фреймам на вкладке. - frameId
число необязательно
Отправить сообщение конкретному фрейму, идентифицированному по
frameId, вместо всех фреймов на вкладке.
- перезвонить
функция необязательна
Chrome 99+Параметр
callbackвыглядит следующим образом:(response: any) => void
- ответ
любой
Объект JSON-ответа, отправленный обработчиком сообщения.
Возвраты
Обещание<любое>
Chrome 99+Обещание, которое разрешается с ответом от скрипта содержимого. Если при подключении к указанной вкладке возникает ошибка, обещание будет отклонено.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
): Promise<any>
Пожалуйста, используйте runtime.sendMessage .
Отправляет один запрос к скрипту(ам) контента на указанной вкладке с необязательным обратным вызовом, который выполняется при получении ответа. Событие extension.onRequest срабатывает в каждом скрипте контента, работающем на указанной вкладке для текущего расширения.
Параметры
- tabId
число
- запрос
любой
- перезвонить
функция необязательна
Chrome 99+Параметр
callbackвыглядит следующим образом:(response: any) => void
- ответ
любой
Объект JSON-ответа, отправленный обработчиком запроса. Если при подключении к указанной вкладке возникнет ошибка, промис будет отклонен.
Возвраты
Обещание<любое>
Chrome 99+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
): Promise<void>
Увеличивает масштаб указанной вкладки.
Параметры
- tabId
число необязательно
Идентификатор вкладки для масштабирования; по умолчанию используется активная вкладка текущего окна.
- zoomFactor
число
The new zoom factor. A value of
0sets the tab to its current default zoom factor. Values greater than0specify a (possibly non-default) zoom factor for the tab. - перезвонить
function optional
The
callbackparameter looks like:() => void
Возвраты
Promise<void>
Chrome 88+Resolves after the zoom factor has been changed.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
): Promise<void>
Sets the zoom settings for a specified tab, which define how zoom changes are handled. These settings are reset to defaults upon navigating the tab.
Параметры
- tabId
number optional
The ID of the tab to change the zoom settings for; defaults to the active tab of the current window.
- zoomSettings
Defines how zoom changes are handled and at what scope.
- перезвонить
function optional
The
callbackparameter looks like:() => void
Возвраты
Promise<void>
Chrome 88+Resolves after the zoom settings are changed.
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
): Promise<void>
Removes one or more tabs from their respective groups. If any groups become empty, they are deleted.
Параметры
- tabIds
number | [number, ...number[]]
The tab ID or list of tab IDs to remove from their respective groups.
- перезвонить
function optional
The
callbackparameter looks like:() => void
Возвраты
Promise<void>
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
unsplit()
chrome.tabs.unsplit(
splitViewId: number,
callback?: function,
): Promise<void>
Separates the tabs in a Split View into independent tabs.
Параметры
- splitViewId
число
The ID of the Split View to separate.
- перезвонить
function optional
The
callbackparameter looks like:() => void
Возвраты
Promise<void>
Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
): Promise<Tab | undefined>
Modifies the properties of a tab. Properties that are not specified in updateProperties are not modified.
Параметры
- tabId
number optional
Defaults to the selected tab of the current window .
- updateProperties
объект
- активный
boolean optional
Whether the tab should be active. Does not affect whether the window is focused (see
windows.update). - autoDiscardable
boolean optional
Chrome 54+Whether the tab should be discarded automatically by the browser when resources are low.
- выделенный
boolean optional
Adds or removes the tab from the current selection.
- приглушенный
boolean optional
Chrome 45+Whether the tab should be muted.
- openerTabId
number optional
The ID of the tab that opened this tab. If specified, the opener tab must be in the same window as this tab.
- закреплено
boolean optional
Whether the tab should be pinned.
- выбранный
boolean optional
УстаревшийPlease use highlighted .
Whether the tab should be selected.
- url
string optional
A URL to navigate the tab to. JavaScript URLs are not supported; use
scripting.executeScriptinstead.
- перезвонить
function optional
The
callbackparameter looks like:(tab?: Tab) => void
Возвраты
Promise< Tab | undefined>
Chrome 88+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.
События
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Fires when the active tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to onUpdated events so as to be notified when a URL is set.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(activeInfo: object) => void
- activeInfo
объект
- tabId
число
The ID of the tab that has become active.
- windowId
число
The ID of the window the active tab changed inside of.
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Please use tabs.onActivated .
Fires when the selected tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to tabs.onUpdated events so as to be notified when a URL is set.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, selectInfo: object) => void
- tabId
число
- selectInfo
объект
- windowId
число
The ID of the window the selected tab changed inside of.
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Fired when a tab is attached to a window; for example, because it was moved between windows.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, attachInfo: object) => void
- tabId
число
- attachInfo
объект
- newPosition
число
- newWindowId
число
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Fired when a tab is created. Note that the tab's URL and tab group membership may not be set at the time this event is fired, but you can listen to onUpdated events so as to be notified when a URL is set or the tab is added to a tab group.
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Fired when a tab is detached from a window; for example, because it was moved between windows.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, detachInfo: object) => void
- tabId
число
- detachInfo
объект
- oldPosition
число
- oldWindowId
число
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Please use tabs.onHighlighted .
Событие срабатывает при изменении выделенной или выбранной вкладки в окне.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(selectInfo: object) => void
- selectInfo
объект
- tabIds
число[]
All highlighted tabs in the window.
- windowId
число
The window whose tabs changed.
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Событие срабатывает при изменении выделенной или выбранной вкладки в окне.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(highlightInfo: object) => void
- highlightInfo
объект
- tabIds
число[]
All highlighted tabs in the window.
- windowId
число
The window whose tabs changed.
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Fired when a tab is moved within a window. Only one move event is fired, representing the tab the user directly moved. Move events are not fired for the other tabs that must move in response to the manually-moved tab. This event is not fired when a tab is moved between windows; for details, see tabs.onDetached .
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, moveInfo: object) => void
- tabId
число
- moveInfo
объект
- fromIndex
число
- toIndex
число
- windowId
число
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Fired when a tab is closed.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, removeInfo: object) => void
- tabId
число
- removeInfo
объект
- isWindowClosing
логический
True when the tab was closed because its parent window was closed.
- windowId
число
The window whose tab is closed.
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Fired when a tab is replaced with another tab due to prerendering or instant.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(addedTabId: number, removedTabId: number) => void
- addedTabId
число
- removedTabId
число
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Please use tabs.onActivated .
Fires when the selected tab in a window changes.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, selectInfo: object) => void
- tabId
число
- selectInfo
объект
- windowId
число
The ID of the window the selected tab changed inside of.
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Fired when a tab is updated.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(tabId: number, changeInfo: object, tab: Tab) => void
- tabId
число
- changeInfo
объект
- слышимый
boolean optional
Chrome 45+The tab's new audible state.
- autoDiscardable
boolean optional
Chrome 54+The tab's new auto-discardable state.
- выброшенный
boolean optional
Chrome 54+The tab's new discarded state.
- favIconUrl
string optional
The tab's new favicon URL.
- замороженный
boolean optional
Chrome 132+The tab's new frozen state.
- groupId
number optional
Chrome 88+The tab's new group.
- mutedInfo
MutedInfo optional
Chrome 46+The tab's new muted state and the reason for the change.
- закреплено
boolean optional
The tab's new pinned state.
- splitViewId
number optional
Chrome 140+The tab's new Split View.
- статус
TabStatus optional
The tab's loading status.
- заголовок
string optional
Chrome 48+The tab's new title.
- url
string optional
The tab's URL if it has changed.
- вкладка
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Fired when a tab is zoomed.
Параметры
- перезвонить
функция
The
callbackparameter looks like:(ZoomChangeInfo: object) => void
- ZoomChangeInfo
объект
- newZoomFactor
число
- oldZoomFactor
число
- tabId
число
- zoomSettings