Описание
Используйте 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
число необязательно
В ожиданииИдентификатор режима разделенного экрана, к которому относится вкладка.
- статус
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 - url
строка необязательный
URL-адрес, на который будет осуществлен первоначальный переход по вкладке. Полные URL-адреса должны включать схему (например, 'http://www.google.com', а не 'www.google.com'). Относительные URL-адреса указываются относительно текущей страницы в расширении. По умолчанию используется страница новой вкладки.
- windowId
число необязательно
Окно, в котором будет создана новая вкладка. По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab: Tab) => void
- вкладка
Создана вкладка.
Возвраты
Обещание< Вкладка >
Chrome 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.
Возвраты
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+Поддержка промисов доступна только для 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+Поддержка промисов доступна только для 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+Поддержка промисов доступна только для 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-ответа, отправленный обработчиком сообщения. Если при подключении к указанной вкладке возникает ошибка, вызывается функция обратного вызова без аргументов, и
runtime.lastErrorустанавливается равным сообщению об ошибке.
Возвраты
Обещание<любое>
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-ответа, отправленный обработчиком запроса. Если при подключении к указанной вкладке возникает ошибка, вызывается функция обратного вызова без аргументов, и
runtime.lastErrorустанавливается равным сообщению об ошибке.
Возвраты
Обещание<любое>
Chrome 99+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
): Promise<void>
Увеличивает масштаб указанной вкладки.
Параметры
- tabId
число необязательно
Идентификатор вкладки для масштабирования; по умолчанию используется активная вкладка текущего окна.
- zoomFactor
число
Новый коэффициент масштабирования. Значение
0устанавливает для вкладки текущий коэффициент масштабирования по умолчанию. Значения больше0задают коэффициент масштабирования для вкладки (возможно, не по умолчанию). - перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
): Promise<void>
Задает параметры масштабирования для указанной вкладки, определяющие порядок обработки изменений масштаба. Эти параметры сбрасываются до значений по умолчанию при переходе на другую вкладку.
Параметры
- tabId
число необязательно
Идентификатор вкладки, для которой нужно изменить параметры масштабирования; по умолчанию используется активная вкладка текущего окна.
- zoomSettings
Определяет, как обрабатываются изменения масштабирования и в какой степени.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
): Promise<void>
Удаляет одну или несколько вкладок из соответствующих групп. Если какие-либо группы становятся пустыми, они удаляются.
Параметры
- tabIds
число | [число, ...число[]]
Идентификатор вкладки или список идентификаторов вкладок, которые необходимо удалить из соответствующих групп.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
): Promise<Tab | undefined>
Изменяет свойства вкладки. Свойства, не указанные в updateProperties не изменяются.
Параметры
- tabId
число необязательно
По умолчанию используется выбранная вкладка текущего окна .
- обновитьСвойства
объект
- активный
логический необязательный
Указывает, должна ли вкладка быть активной. Не влияет на то, находится ли окно в фокусе (см.
windows.update). - автоматически удаляемый
логический необязательный
Chrome 54+Следует ли браузеру автоматически закрывать вкладку при нехватке ресурсов?
- выделенный
логический необязательный
Добавляет или удаляет вкладку из текущего выделения.
- приглушенный
логический необязательный
Chrome 45+Следует ли отключить звук вкладки.
- openerTabId
число необязательно
Идентификатор вкладки, открывшей эту вкладку. Если указано, вкладка, открывшая эту вкладку, должна находиться в том же окне, что и эта вкладка.
- закреплено
логический необязательный
Следует ли закрепить вкладку.
- выбранный
логический необязательный
УстаревшийПожалуйста, используйте выделенный текст .
Следует ли выбрать вкладку.
- url
строка необязательный
URL-адрес для перехода на вкладку. URL-адреса JavaScript не поддерживаются; используйте вместо них
scripting.executeScript.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(tab?: Tab) => void
Возвраты
Promise< Tab | undefined>
Chrome 88+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
События
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Событие срабатывает при изменении активной вкладки в окне. Обратите внимание, что URL-адрес вкладки может быть не установлен на момент срабатывания события, но вы можете отслеживать события onUpdated, чтобы получать уведомления, когда URL-адрес будет установлен.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(activeInfo: object) => void
- activeInfo
объект
- tabId
число
Идентификатор вкладки, которая стала активной.
- windowId
число
Идентификатор окна, внутри которого изменилась активная вкладка.
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onActivated .
Событие срабатывает при изменении выбранной вкладки в окне. Обратите внимание, что URL-адрес вкладки может быть не установлен на момент срабатывания этого события, но вы можете отслеживать события tabs.onUpdated , чтобы получать уведомления, когда URL-адрес будет установлен.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, selectInfo: object) => void
- tabId
число
- selectInfo
объект
- windowId
число
Идентификатор окна, внутри которого изменилась выбранная вкладка.
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Событие срабатывает, когда вкладка прикреплена к окну; например, при перемещении вкладки между окнами.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, attachInfo: object) => void
- tabId
число
- attachInfo
объект
- новая позиция
число
- newWindowId
число
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Событие срабатывает при создании вкладки. Обратите внимание, что URL-адрес вкладки и принадлежность к группе вкладок могут быть не установлены на момент срабатывания этого события, но вы можете отслеживать события onUpdated, чтобы получать уведомления, когда URL-адрес устанавливается или вкладка добавляется в группу вкладок.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tab: Tab) => void
- вкладка
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Событие срабатывает, когда вкладка отсоединяется от окна; например, при перемещении между окнами.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, detachInfo: object) => void
- tabId
число
- отсоединитьИнформ
объект
- старая позиция
число
- oldWindowId
число
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onHighlighted .
Событие срабатывает при изменении выделенной или выбранной вкладки в окне.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(selectInfo: object) => void
- selectInfo
объект
- tabIds
число[]
Все выделенные вкладки в окне.
- windowId
число
Окно, вкладки которого менялись.
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Событие срабатывает при изменении выделенной или выбранной вкладки в окне.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(highlightInfo: object) => void
- highlightInfo
объект
- tabIds
число[]
Все выделенные вкладки в окне.
- windowId
число
Окно, вкладки которого менялись.
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Событие срабатывает при перемещении вкладки внутри окна. Срабатывает только одно событие перемещения, представляющее вкладку, которую пользователь переместил напрямую. События перемещения не срабатывают для других вкладок, которые должны переместиться в ответ на перемещение вкладки вручную. Это событие не срабатывает при перемещении вкладки между окнами; подробности см. в tabs.onDetached .
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, moveInfo: object) => void
- tabId
число
- moveInfo
объект
- из индекса
число
- toIndex
число
- windowId
число
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Событие срабатывает при закрытии вкладки.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, removeInfo: object) => void
- tabId
число
- удалитьИнформацию
объект
- isWindowClosing
логический
Это верно, если вкладка была закрыта, потому что родительское окно было закрыто.
- windowId
число
Окно, вкладка которого закрыта.
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Событие срабатывает, когда вкладка заменяется другой вкладкой в результате предварительной отрисовки или мгновенного отображения.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(addedTabId: number, removedTabId: number) => void
- добавленная вкладкаId
число
- удаленная вкладка
число
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onActivated .
Срабатывает при изменении выбранной вкладки в окне.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, selectInfo: object) => void
- tabId
число
- selectInfo
объект
- windowId
число
Идентификатор окна, внутри которого изменилась выбранная вкладка.
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Событие срабатывает при обновлении вкладки.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(tabId: number, changeInfo: object, tab: Tab) => void
- tabId
число
- changeInfo
объект
- слышимый
логический необязательный
Chrome 45+Новое звуковое состояние вкладки.
- автоматически удаляемый
логический необязательный
Chrome 54+Вкладка теперь автоматически удаляется.
- выброшенный
логический необязательный
Chrome 54+Вкладка находится в новом, закрытом состоянии.
- favIconUrl
строка необязательный
Новый URL-адрес значка вкладки.
- замороженный
логический необязательный
Chrome 132+Вкладка находится в зависшем состоянии.
- groupId
число необязательно
Chrome 88+Новая группа вкладки.
- mutedInfo
MutedInfo ( необязательно)
Chrome 46+Новое состояние вкладки (отключенный звук) и причина изменения.
- закреплено
логический необязательный
Новое состояние закрепления вкладки.
- splitViewId
число необязательно
Chrome 140+Вкладка «Разделенный экран» теперь работает в новом режиме.
- статус
TabStatus ( необязательно)
Статус загрузки вкладки.
- заголовок
строка необязательный
Chrome 48+Новое название вкладки.
- url
строка необязательный
URL вкладки, если он изменился.
- вкладка
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Срабатывает при масштабировании вкладки.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(ZoomChangeInfo: object) => void
- ZoomChangeInfo
объект
- новый ZoomFactor
число
- старый ZoomFactor
число
- tabId
число
- zoomSettings