Описание
Используйте chrome.tabs API для взаимодействия с системой вкладок браузера. С помощью этого API можно создавать, изменять и упорядочивать вкладки в браузере.
Tabs API не только предлагает функции для управления вкладками, но и может определять язык вкладки, делать скриншоты и взаимодействовать со скриптами контента вкладки.
Разрешения
Для большинства функций разрешения не требуются. Например, создание новой вкладки, перезагрузка вкладки, переход по другому URL и т. д.
При работе с Tabs API разработчикам следует учитывать три разрешения.
- Разрешение tabs
Это разрешение не дает доступа к пространству имен
browser.tabs. Оно позволяет расширению вызыватьtabs.query()для четырех конфиденциальных свойств в экземплярахtabs.Tab:url,pendingUrl,titleиfavIconUrl.{ "name": "My extension", ... "permissions": [ "tabs" ], ... }- Разрешения для организаторов
Разрешения хоста позволяют расширению считывать и запрашивать четыре конфиденциальных свойства
tabs.Tabсоответствующей вкладки. Они также могут напрямую взаимодействовать с соответствующими вкладками, используя такие методы, какtabs.captureVisibleTab(),scripting.executeScript(),scripting.insertCSS()иscripting.removeCSS().{ "name": "My extension", ... "host_permissions": [ "http://*/*", "https://*/*" ], ... }- Разрешение activeTab
activeTabпредоставляет расширению временное разрешение на доступ к хостам для текущей вкладки в ответ на вызов пользователя. В отличие от разрешений для хостов,activeTabне вызывает предупреждений.{ "name": "My extension", ... "permissions": [ "activeTab" ], ... }
Примеры использования
Ниже приведены примеры распространенных сценариев использования.
Открыть страницу расширения в новой вкладке
Распространенным шаблоном для расширений является открытие страницы адаптации в новой вкладке, когда расширение установлен. Ниже показано, как это сделать.
background.js:
browser.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
browser.tabs.create({
url: "onboarding.html"
});
}
});
Как получить текущую вкладку
В этом примере показано, как сервис-воркер расширения может получить активную вкладку из окна, находящегося в фокусе (или из окна, которое было в фокусе последним, если ни одно окно Chrome не находится в фокусе). Обычно это текущая вкладка пользователя.
async function getCurrentTab() {
let queryOptions = { active: true, lastFocusedWindow: true };
// `tab` will either be a `tabs.Tab` instance or `undefined`.
let [tab] = await browser.tabs.query(queryOptions);
return tab;
}
function getCurrentTab(callback) {
let queryOptions = { active: true, lastFocusedWindow: true };
browser.tabs.query(queryOptions, ([tab]) => {
if (browser.runtime.lastError)
console.error(browser.runtime.lastError);
// `tab` will either be a `tabs.Tab` instance or `undefined`.
callback(tab);
});
}
Отключить звук на указанной вкладке
В этом примере показано, как расширение может включать и отключать звук на определенной вкладке.
async function toggleMuteState(tabId) {
const tab = await browser.tabs.get(tabId);
const muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, {muted});
console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
}
function toggleMuteState(tabId) {
browser.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await browser.tabs.update(tabId, { muted });
console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
});
}
Перемещать текущую вкладку на первую позицию при нажатии
В примере показано, как переместить вкладку, когда перетаскивание может выполняться или не выполняться. Хотя в этом примере используется browser.tabs.move, вы можете использовать тот же шаблон ожидания для других вызовов, которые изменяют вкладки во время перетаскивания.
browser.tabs.onActivated.addListener(moveToFirstPosition);
async function moveToFirstPosition(activeInfo) {
try {
await browser.tabs.move(activeInfo.tabId, {index: 0});
console.log("Success.");
} catch (error) {
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPosition(activeInfo), 50);
} else {
console.error(error);
}
}
}
browser.tabs.onActivated.addListener(moveToFirstPositionMV2);
function moveToFirstPositionMV2(activeInfo) {
browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
if (browser.runtime.lastError) {
const error = browser.runtime.lastError;
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
} else {
console.error(error);
}
} else {
console.log("Success.");
}
});
}
Передать сообщение скрипту контента выбранной вкладки
В этом примере показано, как сервисный скрипт расширения может взаимодействовать со скриптами контента на определенных вкладках браузера с помощью tabs.sendMessage().
function sendMessageToActiveTab(message) {
const [tab] = await browser.tabs.query({ active: true, lastFocusedWindow: true });
const response = await browser.tabs.sendMessage(tab.id, message);
// TODO: Do something with the response.
}
Примеры расширений
Чтобы посмотреть другие демонстрации расширений Tabs API, перейдите по любой из следующих ссылок:
Типы
MutedInfo
Статус отключения звука на вкладке и причина последнего изменения статуса.
Свойства
-
extensionId
Строка (необязательно)
Идентификатор расширения, которое изменило статус отключения звука. Не задано, если расширение не было причиной последнего изменения состояния отключения звука.
-
Без звука
Логическое значение
Указывает, отключен ли звук на вкладке. Звук на вкладке можно отключить, даже если он не воспроизводится в данный момент. Это эквивалентно тому, показывается ли индикатор отключенного звука.
-
reason
MutedInfoReason необязательный
Причина, по которой звук на вкладке был включен или отключен. Не задано, если статус отключения звука на вкладке никогда не менялся.
MutedInfoReason
Событие, которое привело к изменению состояния отключения звука.
Перечисление
"user"
Пользователь отключил звук.
"capture"
Начата запись вкладки, что привело к принудительному изменению состояния отключения звука.
"extension"
Расширение, указанное в поле extensionId, установило статус отключения звука.
Tab
Свойства
-
активно
Логическое значение
Активна ли вкладка в своем окне. Это не обязательно означает, что окно находится в фокусе.
-
Audible
Логическое значение (необязательно)
Chrome 45 и более поздние версии browser.* начиная с Chrome 148Воспроизводился ли звук на вкладке в течение последних нескольких секунд (но он может быть не слышен, если звук отключен). Это эквивалентно тому, показывается ли индикатор "Аудио говорящего".
-
autoDiscardable
Логическое значение
Chrome 54+ browser.* начиная с Chrome 148Определяет, может ли браузер автоматически закрывать вкладку при нехватке ресурсов.
-
отклонили
Логическое значение
Chrome 54+ browser.* начиная с Chrome 148Удалена ли вкладка. Отклоненная вкладка – это вкладка, контент которой был выгружен из памяти, но которая по-прежнему видна на панели вкладок. Контент перезагружается при следующей активации.
-
favIconUrl
Строка (необязательно)
URL значка вкладки. Это свойство присутствует, только если у расширения есть разрешение
"tabs"или разрешение хоста для страницы. Если вкладка загружается, строка может быть пустой. -
завис
Логическое значение
Chrome 132+ browser.* начиная с Chrome 148Заморожена ли вкладка. Замороженная вкладка не может выполнять задачи, в том числе обработчики событий и таймеры. Она видна на панели вкладок, а ее контент загружен в память. При активации она размораживается.
-
groupId
число
Chrome 88+ browser.* начиная с Chrome 148Идентификатор группы, к которой относится вкладка.
-
высота
number (необязательно)
Высота вкладки в пикселях.
-
выделенное
Логическое значение
Выделена ли вкладка.
-
id
number (необязательно)
Идентификатор вкладки. Идентификаторы вкладок уникальны в пределах сеанса браузера. В некоторых случаях вкладке может не назначаться идентификатор, например при запросе внешних вкладок с помощью API
sessions. В этом случае может присутствовать идентификатор сеанса. Для приложений и окон инструментов разработчика идентификатор вкладки также может быть равенchrome.tabs.TAB_ID_NONE. -
инкогнито
Логическое значение
Находится ли вкладка в окне инкогнито.
-
индекс
число
Индекс вкладки в окне, начиная с нуля.
-
lastAccessed
число
Chrome 121+ browser.* начиная с Chrome 148Время, когда вкладка в последний раз стала активной в своем окне, в миллисекундах с начала эпохи.
-
mutedInfo
MutedInfo необязательный
Chrome 46 и более поздних версий browser.* начиная с Chrome 148Статус отключения звука на вкладке и причина последнего изменения статуса.
-
openerTabId
number (необязательно)
Идентификатор вкладки, которая открыла эту вкладку (если есть). Это свойство присутствует, только если вкладка, с которой была открыта текущая, все ещё существует.
-
pendingUrl
Строка (необязательно)
Chrome 79+ browser.* начиная с Chrome 148URL, на который переходит вкладка, до подтверждения. Это свойство присутствует, только если у расширения есть разрешение
"tabs"или разрешение хоста для страницы и есть ожидающая навигация. -
в главном окн
Логическое значение
Закреплена ли вкладка.
-
выбрано
Логическое значение
Поддержка прекращенаИспользуйте
tabs.Tab.highlighted.Выбрана ли вкладка.
-
sessionId
Строка (необязательно)
Идентификатор сеанса, который используется для уникальной идентификации вкладки, полученной из API
sessions. -
splitViewId
number (необязательно)
Chrome 140+ browser.* начиная с Chrome 148Идентификатор параллельного просмотра, к которому относится вкладка.
-
статус
TabStatus необязательный
Статус загрузки вкладки.
-
название
Строка (необязательно)
Название вкладки. Это свойство присутствует, только если у расширения есть разрешение
"tabs"или разрешение хоста для страницы. -
url
Строка (необязательно)
Последний зафиксированный URL основного фрейма вкладки. Это свойство присутствует, только если у расширения есть разрешение
"tabs"или разрешение хоста для страницы. Может быть пустой строкой, если вкладка ещё не зафиксирована. Дополнительные сведения:Tab.pendingUrl. -
ширина
number (необязательно)
Ширина вкладки в пикселях.
-
windowId
число
Идентификатор окна, в котором находится вкладка.
TabStatus
Статус загрузки вкладки.
Перечисление
"unloaded"
"loading"
"complete"
WindowType
Тип окна.
Перечисление
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
Определяет, как обрабатываются изменения масштаба на вкладке и в какой области.
Свойства
-
defaultZoomFactor
number (необязательно)
Chrome 43 и более поздних версий browser.* начиная с Chrome 148Используется для возврата уровня масштабирования по умолчанию для текущей вкладки в вызовах tabs.getZoomSettings.
-
режим
ZoomSettingsMode необязательный
Определяет, как обрабатываются изменения масштаба, то есть какой объект отвечает за фактическое масштабирование страницы. По умолчанию используется значение
automatic. -
область действия
ZoomSettingsScope необязательный
Определяет, сохраняются ли изменения масштаба для источника страницы или применяются только к этой вкладке. По умолчанию используется значение
per-originв режимеautomaticиper-tabв остальных случаях.
ZoomSettingsMode
Определяет, как обрабатываются изменения масштаба, то есть какой объект отвечает за фактическое масштабирование страницы. По умолчанию используется значение automatic.
Перечисление
"automatic"
Изменения масштаба обрабатываются браузером автоматически.
"manual"
Отменяет автоматическую обработку изменений масштаба. Событие onZoomChange по-прежнему будет отправляться, и расширение должно будет отслеживать его и вручную масштабировать страницу. В этом режиме не поддерживается масштабирование per-origin, поэтому настройка масштабирования scope игнорируется и используется значение per-tab.
"disabled"
Отключает масштабирование на вкладке. Вкладка возвращается к уровню масштабирования по умолчанию, а все попытки изменить масштаб игнорируются.
ZoomSettingsScope
Определяет, сохраняются ли изменения масштаба для источника страницы или применяются только к этой вкладке. По умолчанию используется значение per-origin в режиме automatic и per-tab в остальных случаях.
Перечисление
"per-origin"
Изменения масштаба сохраняются для источника страницы, то есть все остальные вкладки, открытые из того же источника, также масштабируются. Кроме того, изменения масштаба per-origin сохраняются для источника. Это значит, что при переходе на другие страницы в том же источнике они будут отображаться в том же масштабе. Область действия per-origin доступна только в режиме automatic.
per-tab
Изменения масштаба применяются только к текущей вкладке и не влияют на другие вкладки. Кроме того, изменения масштаба per-tab сбрасываются при навигации. При переходе на вкладку страницы всегда загружаются с коэффициентом масштабирования per-origin.
Свойства
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Максимальное количество вызовов captureVisibleTab в секунду. Метод captureVisibleTab требует много ресурсов, поэтому его не следует вызывать слишком часто.
Значение
2
SPLIT_VIEW_ID_NONE
Идентификатор, который указывает на отсутствие разделенной вкладки.
Значение
-1
TAB_ID_NONE
Идентификатор, который указывает на отсутствие вкладки браузера.
Значение
-1
TAB_INDEX_NONE
Индекс, который представляет отсутствие индекса вкладки на панели вкладок.
Значение
-1
Методы
captureVisibleTab()
browser.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
Делает снимок видимой области активной вкладки в указанном окне. Чтобы вызвать этот метод, у расширения должно быть разрешение <all_urls> или activeTab. Помимо сайтов, к которым у расширений обычно есть доступ, этот метод позволяет расширениям делать скриншоты сайтов с конфиденциальными данными, доступ к которым ограничен, в том числе страниц со схемой chrome:, страниц других расширений и URL с данными. Скриншоты таких сайтов можно делать только с разрешением activeTab. URL файлов могут быть получены, только если расширению предоставлен доступ к файлам.
Параметры
-
windowId
number (необязательно)
Целевое окно. По умолчанию используется текущее окно.
-
Параметры
ImageDetails необязательный
Возвраты
-
Promise<string>
Chrome 88+ browser.* начиная с Chrome 148
connect()
browser.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
Подключается к скриптам контента на указанной вкладке. Событие runtime.onConnect запускается в каждом скрипте контента, выполняющемся на указанной вкладке для текущего расширения. Подробнее об обмене сообщениями со скриптами контента…
Параметры
-
tabId
число
-
connectInfo
Объект (необязательно)
-
documentId
Строка (необязательно)
Chrome 106 и более поздних версий browser.* начиная с Chrome 148Открыть порт для определенного документа, идентифицированного по
documentId, а не для всех фреймов на вкладке. -
frameId
number (необязательно)
Открыть порт для определенного фрейма, идентифицированного по
frameId, а не для всех фреймов на вкладке. -
name
Строка (необязательно)
Передается в onConnect для скриптов контента, которые прослушивают событие подключения.
-
Возвраты
-
Порт, который можно использовать для связи со скриптами контента, запущенными на указанной вкладке. Если вкладка закрыта или не существует, активируется событие
runtime.Portпорта.
Параметры
-
createProperties
Объект
-
активно
Логическое значение (необязательно)
Должна ли вкладка стать активной в окне. Не влияет на то, находится ли окно в фокусе (см.
windows.update). Значение по умолчанию –true. -
индекс
number (необязательно)
Позиция, которую вкладка должна занять в окне. Указанное значение должно быть в диапазоне от нуля до количества вкладок в окне.
-
openerTabId
number (необязательно)
Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка, открывшая новую, должна находиться в том же окне, что и новая вкладка.
-
в главном окн
Логическое значение (необязательно)
Нужно ли закрепить вкладку. Значение по умолчанию –
false. -
выбрано
Логическое значение (необязательно)
Поддержка прекращенаИспользуйте значение active.
Должна ли вкладка стать выбранной в окне. Значение по умолчанию –
true. -
splitWithTabId
number (необязательно)
Chrome 155+Идентификатор существующей вкладки, с которой нужно создать параллельный просмотр. Если вкладка указана, она должна соответствовать следующим условиям:
- Вкладка не должна быть уже разделена.
- Оно должно быть в том же окне, что и новая вкладка.
- Если указано свойство
windowId, оно должно совпадать с идентификатором окна вкладки, с которой нужно разделить экран. - Если указан параметр
index, он должен быть индексом, смежным с вкладкой split-with, и будет влиять на относительное позиционирование вновь созданной вкладки.
-
url
Строка (необязательно)
URL, который изначально открывается на вкладке. Полные URL должны включать схему (например, например http://www.google.com, а не www.google.com. Относительные URL указываются относительно текущей страницы в расширении. По умолчанию это страница быстрого доступа.
-
windowId
number (необязательно)
Окно, в котором нужно создать вкладку. По умолчанию используется текущее окно.
-
Возвраты
-
Promise<Tab>
Chrome 88+ browser.* начиная с Chrome 148
createSplit()
browser.tabs.createSplit(
tabIds: [number, number],
): Promise<number>
Открывает две существующие вкладки в режиме параллельного просмотра.
Параметры
-
tabIds
[number, number]
Массив, содержащий ровно два идентификатора вкладок, которые нужно объединить в режиме параллельного просмотра. Все вкладки должны соответствовать следующим условиям:
Они должны быть смежными. Они не должны быть уже открыты в режиме параллельного просмотра. У них должны совпадать состояния
windowId,pinnedиgroupId.
Возвраты
-
Promise<number>
detectLanguage()
browser.tabs.detectLanguage(
tabId?: number,
): Promise<string>
Определяет основной язык контента на вкладке.
Параметры
-
tabId
number (необязательно)
По умолчанию используется активная вкладка текущего окна.
Возвраты
-
Promise<string>
Chrome 88+ browser.* начиная с Chrome 148
discard()
browser.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
Удаляет вкладку из памяти. Отключенные вкладки по-прежнему видны на панели вкладок и перезагружаются при активации.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, которую нужно закрыть. Если правило задано, вкладка выгружается, если она неактивна или уже выгружена. Если это правило не задано, браузер удаляет наименее важную вкладку. Если таких вкладок нет, то действие не будет выполнено.
Возвраты
-
Promise<Tab | undefined>
Chrome 88+ browser.* начиная с Chrome 148Разрешается после завершения операции.
duplicate()
browser.tabs.duplicate(
tabId: number,
): Promise<Tab | undefined>
Создает копию вкладки.
Параметры
-
tabId
число
Идентификатор вкладки, копию которой нужно создать.
Возвраты
-
Promise<Tab | undefined>
Chrome 88+ browser.* начиная с Chrome 148
Параметры
-
tabId
число
Возвраты
-
Promise<Tab>
Chrome 88+ browser.* начиная с Chrome 148
getCurrent()
browser.tabs.getCurrent(): Promise<Tab | undefined>
Возвращает вкладку, из которой вызывается скрипт. Возвращает undefined, если вызов происходит не из контекста вкладки (например, из фоновой страницы или всплывающего окна).
Возвраты
-
Promise<Tab | undefined>
Chrome 88+ browser.* начиная с Chrome 148
getZoom()
browser.tabs.getZoom(
tabId?: number,
): Promise<number>
Получает текущий коэффициент масштабирования указанной вкладки.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, для которой нужно получить текущий коэффициент масштабирования. По умолчанию используется активная вкладка текущего окна.
Возвраты
-
Promise<number>
Chrome 88+ browser.* начиная с Chrome 148Возвращает текущий коэффициент масштабирования вкладки после его получения.
getZoomSettings()
browser.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
Получает текущие настройки масштаба для указанной вкладки.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, для которой нужно получить текущие настройки масштаба. По умолчанию используется активная вкладка текущего окна.
Возвраты
-
Promise<ZoomSettings>
Chrome 88+ browser.* начиная с Chrome 148Возвращает текущие настройки масштаба вкладки.
goBack()
browser.tabs.goBack(
tabId?: number,
): Promise<void>
Вернуться на предыдущую страницу, если она доступна.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, на которой нужно вернуться назад. По умолчанию используется выбранная вкладка текущего окна.
Возвраты
-
Promise<void>
Chrome 88+ browser.* начиная с Chrome 148
goForward()
browser.tabs.goForward(
tabId?: number,
): Promise<void>
Перейти на следующую страницу, если она доступна.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, на которой нужно перейти вперед. По умолчанию используется выбранная вкладка текущего окна.
Возвраты
-
Promise<void>
Chrome 88+ browser.* начиная с Chrome 148
group()
browser.tabs.group(
options: object,
): Promise<number>
Добавляет одну или несколько вкладок в указанную группу. Если группа не указана, добавляет вкладки в новую группу.
Параметры
-
Параметры
Объект
-
createProperties
Объект (необязательно)
Конфигурации для создания группы. Нельзя использовать, если уже указан groupId.
-
windowId
number (необязательно)
Окно новой группы. По умолчанию используется текущее окно.
-
-
groupId
number (необязательно)
Идентификатор группы, в которую нужно добавить вкладки. Если не указать, будет создана новая группа.
-
tabIds
number | [number, ...number[]]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно добавить в указанную группу.
-
Возвраты
-
Promise<number>
highlight()
browser.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
Выделяет указанные вкладки и фокусируется на первой из них. Если указанная вкладка активна, ничего не произойдет.
Параметры
-
highlightInfo
Объект
-
вкладки
number | number[]
Один или несколько индексов вкладок, которые нужно выделить.
-
windowId
number (необязательно)
Окно, в котором находятся вкладки.
-
Возвраты
-
Promise<windows.Window>
Chrome 88+ browser.* начиная с Chrome 148
move()
browser.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
Перемещает одну или несколько вкладок на новую позицию в окне или в новое окно. Обратите внимание, что вкладки можно перемещать только в обычные окна (window.type === "normal") и из них.
Параметры
-
tabIds
number | number[]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно переместить.
-
moveProperties
Объект
-
индекс
число
Позиция, в которую нужно переместить окно. Чтобы переместить вкладку в конец окна, используйте
-1. -
windowId
number (необязательно)
По умолчанию используется окно, в котором сейчас находится вкладка.
-
query()
browser.tabs.query(
queryInfo: object,
): Promise<Tab[]>
Возвращает все вкладки с указанными свойствами или все вкладки, если свойства не указаны.
Параметры
-
queryInfo
Объект
-
активно
Логическое значение (необязательно)
Активны ли вкладки в своих окнах.
-
Audible
Логическое значение (необязательно)
Chrome 45 и более поздние версии browser.* начиная с Chrome 148Вкладки со звуком.
-
autoDiscardable
Логическое значение (необязательно)
Chrome 54+ browser.* начиная с Chrome 148Определяет, может ли браузер автоматически закрывать вкладки при нехватке ресурсов.
-
currentWindow
Логическое значение (необязательно)
Находятся ли вкладки в текущем окне.
-
отклонили
Логическое значение (необязательно)
Chrome 54+ browser.* начиная с Chrome 148Удаляются ли вкладки. Отклоненная вкладка – это вкладка, контент которой был выгружен из памяти, но которая по-прежнему видна на панели вкладок. Контент перезагружается при следующей активации.
-
завис
Логическое значение (необязательно)
Chrome 132+ browser.* начиная с Chrome 148Заморожены ли вкладки. Замороженная вкладка не может выполнять задачи, в том числе обработчики событий и таймеры. Она видна на панели вкладок, а ее контент загружен в память. При активации она размораживается.
-
groupId
number (необязательно)
Chrome 88+ browser.* начиная с Chrome 148Идентификатор группы, в которой находятся вкладки, или
tabGroups.TAB_GROUP_ID_NONEдля вкладок, не входящих в группу. -
выделенное
Логическое значение (необязательно)
Выделены ли вкладки.
-
индекс
number (необязательно)
Позиции вкладок в окнах.
-
lastFocusedWindow
Логическое значение (необязательно)
Находятся ли вкладки в окне, которое последним было в фокусе.
-
Без звука
Логическое значение (необязательно)
Chrome 45 и более поздние версии browser.* начиная с Chrome 148Отключен ли звук на вкладках.
-
в главном окн
Логическое значение (необязательно)
закреплены ли вкладки;
-
splitViewId
number (необязательно)
Chrome 140+ browser.* начиная с Chrome 148Идентификатор режима Split View, в котором находятся вкладки, или
tabs.SPLIT_VIEW_ID_NONEдля вкладок, которые не находятся в режиме Split View. -
статус
TabStatus необязательный
Статус загрузки вкладки.
-
название
Строка (необязательно)
Сопоставлять заголовки страниц с шаблоном. Это свойство игнорируется, если у расширения нет разрешения
"tabs"или разрешений хоста для страницы. -
url
string | string[] optional
Сопоставлять вкладки с одним или несколькими шаблонами URL. Идентификаторы фрагментов не сопоставляются. Это свойство игнорируется, если у расширения нет разрешения
"tabs"или разрешений хоста для страницы. -
windowId
number (необязательно)
Идентификатор родительского окна или
windows.WINDOW_ID_CURRENTдля текущего окна. -
windowType
WindowType необязательный
Тип окна, в котором находятся вкладки.
-
Возвраты
-
Promise<Tab[]>
Chrome 88+ browser.* начиная с Chrome 148
reload()
browser.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
Обновить вкладку.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, которую нужно перезагрузить. По умолчанию используется выбранная вкладка текущего окна.
-
reloadProperties
Объект (необязательно)
-
bypassCache
Логическое значение (необязательно)
Указывает, нужно ли обходить локальное кеширование. Значение по умолчанию –
false.
-
Возвраты
-
Promise<void>
Chrome 88+ browser.* начиная с Chrome 148
remove()
browser.tabs.remove(
tabIds: number | number[],
): Promise<void>
Закрывает одну или несколько вкладок.
Параметры
-
tabIds
number | number[]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно закрыть.
Возвраты
-
Promise<void>
Chrome 88+ browser.* начиная с Chrome 148
sendMessage()
browser.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
Отправляет одно сообщение скриптам контента на указанной вкладке. Событие runtime.onMessage запускается в каждом скрипте контента, выполняющемся на указанной вкладке для текущего расширения.
Параметры
-
tabId
число
-
Сообщение
любой
Отправляемое сообщение. Это сообщение должно быть объектом, который можно преобразовать в JSON.
-
Параметры
Объект (необязательно)
-
documentId
Строка (необязательно)
Chrome 106 и более поздних версий browser.* начиная с Chrome 148Отправляет сообщение определенному документу, идентифицированному по
documentId, а не всем фреймам на вкладке. -
frameId
number (необязательно)
Отправляет сообщение определенному фрейму, идентифицированному по
frameId, а не всем фреймам на вкладке.
-
Возвраты
-
Promise<any>
Chrome 99 и более поздние версии browser.* начиная с Chrome 148Обещание, которое разрешается ответом из скрипта контента. Если при подключении к указанной вкладке произойдет ошибка, обещание будет отклонено.
setZoom()
browser.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
Изменяет масштаб указанной вкладки.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, масштаб которой нужно изменить. По умолчанию используется активная вкладка текущего окна.
-
zoomFactor
число
Новый коэффициент масштабирования. Значение
0устанавливает для вкладки текущий коэффициент масштабирования по умолчанию. Значения больше0задают коэффициент масштабирования для вкладки (возможно, не по умолчанию).
Возвраты
-
Promise<void>
Chrome 88+ browser.* начиная с Chrome 148Разрешается после изменения коэффициента масштабирования.
setZoomSettings()
browser.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
Задает настройки масштабирования для указанной вкладки, которые определяют, как обрабатываются изменения масштаба. При переходе на вкладку эти настройки сбрасываются до значений по умолчанию.
Параметры
-
tabId
number (необязательно)
Идентификатор вкладки, для которой нужно изменить настройки масштабирования. По умолчанию используется активная вкладка текущего окна.
-
zoomSettings
Определяет, как обрабатываются изменения масштаба и в каком объеме.
Возвраты
-
Promise<void>
Chrome 88+ browser.* начиная с Chrome 148Выполняется после изменения настроек масштабирования.
ungroup()
browser.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
Удаляет одну или несколько вкладок из соответствующих групп. Если в группе не останется участников, она будет удалена.
Параметры
-
tabIds
number | [number, ...number[]]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно удалить из соответствующих групп.
Возвраты
-
Promise<void>
unsplit()
browser.tabs.unsplit(
splitViewId: number,
): Promise<void>
Разделяет вкладки в режиме Split View на независимые вкладки.
Параметры
-
splitViewId
число
Идентификатор режима Split View, который нужно отключить.
Возвраты
-
Promise<void>
update()
browser.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
Изменяет свойства вкладки. Свойства, не указанные в updateProperties, не изменяются.
Параметры
-
tabId
number (необязательно)
По умолчанию используется выбранная вкладка текущего окна.
-
updateProperties
Объект
-
активно
Логическое значение (необязательно)
Должна ли вкладка быть активной. Не влияет на то, находится ли окно в фокусе (см.
windows.update). -
autoDiscardable
Логическое значение (необязательно)
Chrome 54+ browser.* начиная с Chrome 148Определяет, должен ли браузер автоматически закрывать вкладку при нехватке ресурсов.
-
выделенное
Логическое значение (необязательно)
Добавляет вкладку в текущую выборку или удаляет ее оттуда.
-
Без звука
Логическое значение (необязательно)
Chrome 45 и более поздние версии browser.* начиная с Chrome 148Указывает, нужно ли отключить звук на вкладке.
-
openerTabId
number (необязательно)
Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка, открывшая эту, должна находиться в том же окне.
-
в главном окн
Логическое значение (необязательно)
Нужно ли закрепить вкладку.
-
выбрано
Логическое значение (необязательно)
Поддержка прекращенаИспользуйте выделенный.
Должна ли быть выбрана вкладка.
-
url
Строка (необязательно)
URL, на который нужно перейти. URL JavaScript не поддерживаются. Вместо них используйте
scripting.executeScript.
-
Возвраты
-
Promise<Tab | undefined>
Chrome 88+ browser.* начиная с Chrome 148
События
onActivated
browser.tabs.onActivated.addListener(
callback: function,
)
Срабатывает, когда активная вкладка в окне меняется. Обратите внимание, что URL вкладки может быть не задан в момент запуска этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления, когда URL задан.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(activeInfo: object) => void
-
activeInfo
Объект
-
tabId
число
Идентификатор вкладки, которая стала активной.
-
windowId
число
Идентификатор окна, в котором изменилась активная вкладка.
-
-
onAttached
browser.tabs.onAttached.addListener(
callback: function,
)
Срабатывает, когда вкладка прикрепляется к окну, например при перемещении между окнами.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(tabId: number, attachInfo: object) => void
-
tabId
число
-
attachInfo
Объект
-
newPosition
число
-
newWindowId
число
-
-
onCreated
browser.tabs.onCreated.addListener(
callback: function,
)
Срабатывает при создании вкладки. Обратите внимание, что URL вкладки и ее принадлежность к группе вкладок могут быть не заданы в момент запуска этого события. Однако вы можете прослушивать события onUpdated, чтобы получать уведомления, когда URL задан или вкладка добавлена в группу вкладок.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(tab: Tab) => void
-
табуляция
-
onDetached
browser.tabs.onDetached.addListener(
callback: function,
)
Срабатывает, когда вкладка открепляется от окна, например при перемещении между окнами.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(tabId: number, detachInfo: object) => void
-
tabId
число
-
detachInfo
Объект
-
oldPosition
число
-
oldWindowId
число
-
-
onHighlighted
browser.tabs.onHighlighted.addListener(
callback: function,
)
Срабатывает, когда меняются выделенные или выбранные вкладки в окне.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(highlightInfo: object) => void
-
highlightInfo
Объект
-
tabIds
number[]
Все выделенные вкладки в окне.
-
windowId
число
Окно, в котором изменились вкладки.
-
-
onMoved
browser.tabs.onMoved.addListener(
callback: function,
)
Срабатывает, когда вкладка перемещается в пределах окна. Срабатывает только одно событие перемещения, представляющее вкладку, которую пользователь переместил напрямую. События перемещения не запускаются для других вкладок, которые должны перемещаться в ответ на перемещение вкладки вручную. Это событие не происходит, когда вкладка перемещается между окнами. Подробную информацию можно найти в описании tabs.onDetached.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(tabId: number, moveInfo: object) => void
-
tabId
число
-
moveInfo
Объект
-
fromIndex
число
-
toIndex
число
-
windowId
число
-
-
onRemoved
browser.tabs.onRemoved.addListener(
callback: function,
)
Срабатывает, когда вкладка закрывается.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(tabId: number, removeInfo: object) => void
-
tabId
число
-
removeInfo
Объект
-
isWindowClosing
Логическое значение
True, если вкладка была закрыта, потому что было закрыто ее родительское окно.
-
windowId
число
Окно, вкладка которого закрыта.
-
-
onReplaced
browser.tabs.onReplaced.addListener(
callback: function,
)
Срабатывает, когда вкладка заменяется другой вкладкой в результате предварительной отрисовки или мгновенного перехода.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(addedTabId: number, removedTabId: number) => void
-
addedTabId
число
-
removedTabId
число
-
onUpdated
browser.tabs.onUpdated.addListener(
callback: function,
)
Срабатывает при обновлении вкладки.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
число
-
changeInfo
Объект
-
Audible
Логическое значение (необязательно)
Chrome 45 и более поздние версии browser.* начиная с Chrome 148Новое состояние звука на вкладке.
-
autoDiscardable
Логическое значение (необязательно)
Chrome 54+ browser.* начиная с Chrome 148Новое состояние автоматического закрытия вкладки.
-
отклонили
Логическое значение (необязательно)
Chrome 54+ browser.* начиная с Chrome 148Новое состояние вкладки.
-
favIconUrl
Строка (необязательно)
Новый URL значка вкладки.
-
завис
Логическое значение (необязательно)
Chrome 132+ browser.* начиная с Chrome 148Новое состояние заморозки вкладки.
-
groupId
number (необязательно)
Chrome 88+ browser.* начиная с Chrome 148Новая группа вкладок.
-
mutedInfo
MutedInfo необязательный
Chrome 46 и более поздних версий browser.* начиная с Chrome 148Новое состояние вкладки (звук включен или отключен) и причина изменения.
-
в главном окн
Логическое значение (необязательно)
Новое состояние закрепления вкладки.
-
splitViewId
number (необязательно)
Chrome 140+ browser.* начиная с Chrome 148Вкладка откроется в режиме параллельного просмотра.
-
статус
TabStatus необязательный
Статус загрузки вкладки.
-
название
Строка (необязательно)
Chrome 48+ browser.* начиная с Chrome 148Новое название вкладки.
-
url
Строка (необязательно)
URL вкладки, если он изменился.
-
-
табуляция
-
onZoomChange
browser.tabs.onZoomChange.addListener(
callback: function,
)
Срабатывает при изменении масштаба вкладки.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
Объект
-
newZoomFactor
число
-
oldZoomFactor
число
-
tabId
число
-
zoomSettings
-
-