Описание
Используйте API chrome.tabs
для взаимодействия с системой вкладок браузера. Вы можете использовать этот API для создания, изменения и перестановки вкладок в браузере.
Обзор
API вкладок не только предлагает функции для манипулирования и управления вкладками, но также может определять язык вкладки, делать снимки экрана и взаимодействовать со сценариями содержимого вкладки.
Разрешения
Для использования большинства функций не требуются какие-либо разрешения. Например: создание новой вкладки, перезагрузка вкладки, переход на другой URL-адрес и т. д.
Существует три разрешения, о которых разработчики должны знать при работе с API вкладок.
- Разрешение «вкладки»
- Это разрешение не предоставляет доступ к пространству имен
chrome.tabs
. Вместо этого он предоставляет расширению возможность вызыватьtabs.query()
для четырех конфиденциальных свойств экземпляровtabs.Tab
:url
,pendingUrl
,title
иfavIconUrl
. - Разрешения хоста
- Разрешения хоста позволяют расширению читать и запрашивать четыре конфиденциальные
tabs.Tab
соответствующей вкладки. Свойства вкладки. Они также могут напрямую взаимодействовать с соответствующими вкладками, используя такие методы, какtabs.captureVisibleTab()
,tabs.executeScript()
,tabs.insertCSS()
иtabs.removeCSS()
. - Разрешение «activeTab»
-
activeTab
предоставляет расширению временное разрешение хоста для текущей вкладки в ответ на вызов пользователя. В отличие от разрешений хоста,activeTab
не выдает никаких предупреждений.
Манифест
Ниже приведены примеры объявления каждого разрешения в манифесте :
{
"name": "My extension",
...
"permissions": [
"tabs"
],
...
}
{
"name": "My extension",
...
"host_permissions": [
"http://*/*",
"https://*/*"
],
...
}
{
"name": "My extension",
...
"permissions": [
"activeTab"
],
...
}
Варианты использования
В следующих разделах демонстрируются некоторые распространенные случаи использования.
Открытие страницы расширения в новой вкладке
Обычной схемой для расширений является открытие страницы регистрации в новой вкладке после установки расширения. В следующем примере показано, как это сделать.
фон.js:
chrome.runtime.onInstalled.addListener(({reason}) => {
if (reason === 'install') {
chrome.tabs.create({
url: "onboarding.html"
});
}
});
Получить текущую вкладку
В этом примере показано, как сервис-воркер расширения может получить активную вкладку из окна, находящегося в фокусе (или окна, находящегося в последнем фокусе, если ни одно окно Chrome не находится в фокусе). Обычно это можно рассматривать как текущую вкладку пользователя.
async function getCurrentTab() {
let queryOptions = { active: true, lastFocusedWindow: true };
// `tab` will either be a `tabs.Tab` instance or `undefined`.
let [tab] = await chrome.tabs.query(queryOptions);
return tab;
}
function getCurrentTab(callback) {
let queryOptions = { active: true, lastFocusedWindow: true };
chrome.tabs.query(queryOptions, ([tab]) => {
if (chrome.runtime.lastError)
console.error(chrome.runtime.lastError);
// `tab` will either be a `tabs.Tab` instance or `undefined`.
callback(tab);
});
}
Отключить звук на указанной вкладке
В этом примере показано, как расширение может переключать состояние отключения звука для данной вкладки.
async function toggleMuteState(tabId) {
const tab = await chrome.tabs.get(tabId);
const muted = !tab.mutedInfo.muted;
await chrome.tabs.update(tabId, {muted});
console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
}
function toggleMuteState(tabId) {
chrome.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await chrome.tabs.update(tabId, { muted });
console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
});
}
Переместить текущую вкладку на первую позицию при нажатии
В этом примере показано, как переместить вкладку во время перетаскивания, а может и нет. Хотя в этом примере используется chrome.tabs.move
, вы можете использовать тот же шаблон ожидания для других вызовов, которые изменяют вкладки во время перетаскивания.
chrome.tabs.onActivated.addListener(moveToFirstPosition);
async function moveToFirstPosition(activeInfo) {
try {
await chrome.tabs.move(activeInfo.tabId, {index: 0});
console.log("Success.");
} catch (error) {
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPosition(activeInfo), 50);
} else {
console.error(error);
}
}
}
chrome.tabs.onActivated.addListener(moveToFirstPositionMV2);
function moveToFirstPositionMV2(activeInfo) {
chrome.tabs.move(activeInfo.tabId, { index: 0 }, () => {
if (chrome.runtime.lastError) {
const error = chrome.runtime.lastError;
if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
} else {
console.error(error);
}
} else {
console.log("Success.");
}
});
}
Передать сообщение в скрипт содержимого выбранной вкладки
В этом примере показано, как сервис-воркер расширения может взаимодействовать со сценариями содержимого на определенных вкладках браузера с помощью tabs.sendMessage()
.
function sendMessageToActiveTab(message) {
const [tab] = await chrome.tabs.query({ active: true, lastFocusedWindow: true });
const response = await chrome.tabs.sendMessage(tab.id, message);
// TODO: Do something with the response.
}
Примеры расширений
Для получения дополнительных демонстраций расширений Tabs API изучите любое из следующего:
Типы
MutedInfo
Состояние отключения звука вкладки и причина последнего изменения состояния.
Характеристики
- идентификатор расширения
строка необязательна
Идентификатор расширения, которое изменило состояние отключения звука. Не устанавливается, если расширение не было причиной последнего изменения состояния отключения звука.
- приглушенный
логическое значение
Отключен ли звук на вкладке (запрещено воспроизведение звука). Звук на вкладке может быть отключен, даже если на ней не воспроизводился или в данный момент не воспроизводится звук. Эквивалентно тому, отображается ли индикатор «отключенного звука».
- причина
MutedInfoReason необязательно
Причина, по которой звук на вкладке был отключен или включен. Не устанавливается, если состояние отключения звука на вкладке никогда не менялось.
MutedInfoReason
Событие, вызвавшее изменение состояния без звука.
Перечисление
"пользователь" "захватывать" "расширение"
Действие пользовательского ввода устанавливает отключенный звук.
Захват вкладки был начат, что привело к изменению состояния без звука.
Расширение, идентифицируемое полем ExtensionId, установило состояние отключения звука.
Tab
Характеристики
- активный
логическое значение
Активна ли вкладка в своем окне. Это не обязательно означает, что окно сфокусировано.
- слышимый
логическое значение необязательно
Хром 45+Издавала ли вкладка звук в течение последних нескольких секунд (но его можно было бы не услышать, если бы он также был отключен). Эквивалентно тому, отображается ли индикатор «звук динамика».
- автосбрасываемый
логическое значение
Хром 54+Может ли браузер автоматически удалять вкладку при нехватке ресурсов.
- выброшенный
логическое значение
Хром 54+Будет ли вкладка удалена. Отброшенная вкладка — это та вкладка, содержимое которой было выгружено из памяти, но все еще отображается в полосе вкладок. Его содержимое перезагружается при следующей активации.
- favIconUrl
строка необязательна
URL-адрес значка вкладки. Это свойство присутствует только в том случае, если манифест расширения включает разрешение
"tabs"
. Это также может быть пустая строка, если вкладка загружается. - идентификатор группы
число
Хром 88+Идентификатор группы, к которой принадлежит вкладка.
- высота
номер необязательно
Высота вкладки в пикселях.
- выделено
логическое значение
Подсвечивается ли вкладка.
- идентификатор
номер необязательно
Идентификатор вкладки. Идентификаторы вкладок уникальны в рамках сеанса браузера. В некоторых случаях вкладке может не быть присвоен идентификатор; например, при запросе внешних вкладок с использованием API
sessions
, в этом случае может присутствовать идентификатор сеанса. Идентификатор вкладки также можно установить наchrome.tabs.TAB_ID_NONE
для окон приложений и инструментов разработчика. - инкогнито
логическое значение
Находится ли вкладка в окне инкогнито.
- индекс
число
Отсчитываемый от нуля индекс вкладки в ее окне.
- последний доступ
число
Хром 121+Последний раз, когда к вкладке обращались, указывается количество миллисекунд с момента начала.
- mutedInfo
MutedInfo необязательно
Хром 46+Состояние отключения звука вкладки и причина последнего изменения состояния.
- openTabId
номер необязательно
Идентификатор вкладки, открывшей эту вкладку, если таковая имеется. Это свойство присутствует только в том случае, если вкладка открытия все еще существует.
- ожидающий URL
строка необязательна
Хром 79+URL-адрес, по которому переходит вкладка, до фиксации. Это свойство присутствует только в том случае, если манифест расширения включает разрешение
"tabs"
и имеется ожидающая навигация. - закрепленный
логическое значение
Закреплена ли вкладка.
- выбрано
логическое значение
УстарелоПожалуйста, используйте
tabs.Tab.highlighted
.Выбрана ли вкладка.
- идентификатор сеанса
строка необязательна
Идентификатор сеанса, используемый для уникальной идентификации вкладки, полученный из API
sessions
. - статус
TabStatus необязательно
Статус загрузки вкладки.
- заголовок
строка необязательна
Название вкладки. Это свойство присутствует только в том случае, если манифест расширения включает разрешение
"tabs"
. - URL
строка необязательна
Последний зафиксированный URL-адрес основного фрейма вкладки. Это свойство присутствует только в том случае, если манифест расширения включает разрешение
"tabs"
и может быть пустой строкой, если вкладка еще не зафиксирована. См. такжеTab.pendingUrl
. - ширина
номер необязательно
Ширина вкладки в пикселях.
- идентификатор окна
число
Идентификатор окна, содержащего вкладку.
TabStatus
Статус загрузки вкладки.
Перечисление
"разгружен" "загрузка" "полный"
WindowType
Тип окна.
Перечисление
"нормальный" "неожиданно возникнуть" "панель" "приложение" "инструменты разработчика"
ZoomSettings
Определяет, как обрабатываются изменения масштаба на вкладке и в какой области.
Характеристики
- по умолчаниюZoomFactor
номер необязательно
Хром 43+Используется для возврата уровня масштабирования по умолчанию для текущей вкладки при вызовах tabs.getZoomSettings.
- режим
Режим ZoomSettingsMode необязательно
Определяет, как обрабатываются изменения масштаба, т. е. какой объект отвечает за фактическое масштабирование страницы; по умолчанию установлено
automatic
. - объем
ZoomSettingsScope необязательно
Определяет, сохраняются ли изменения масштаба для исходной страницы или вступают в силу только на этой вкладке; по умолчанию используется для
per-origin
вautomatic
режиме иper-tab
в противном случае.
ZoomSettingsMode
Определяет, как обрабатываются изменения масштаба, т. е. какой объект отвечает за фактическое масштабирование страницы; по умолчанию установлено automatic
.
Перечисление
"автоматический" "руководство" "неполноценный"
Изменения масштаба автоматически обрабатываются браузером.
Переопределяет автоматическую обработку изменений масштаба. Событие onZoomChange
по-прежнему будет отправлено, и расширение обязано прослушивать это событие и масштабировать страницу вручную. Этот режим не поддерживает масштабирование per-origin
и, следовательно, игнорирует настройку масштабирования scope
и предполагает индивидуальное per-tab
.
Отключает любое масштабирование на вкладке. Вкладка возвращается к уровню масштабирования по умолчанию, и все попытки изменения масштаба игнорируются.
ZoomSettingsScope
Определяет, сохраняются ли изменения масштаба для исходной страницы или вступают в силу только на этой вкладке; по умолчанию используется для per-origin
в automatic
режиме и per-tab
в противном случае.
Перечисление
"для каждого происхождения" "для каждой вкладки"
Изменения масштаба сохраняются в исходной точке увеличенной страницы, т. е. все остальные вкладки, перемещенные в ту же исходную точку, также масштабируются. Более того, изменения масштаба per-origin
сохраняются вместе с источником, а это означает, что при переходе к другим страницам в том же источнике все они масштабируются до одного и того же коэффициента масштабирования. Область per-origin
доступна только в automatic
режиме.
Изменения масштаба вступают в силу только на этой вкладке, а изменения масштаба на других вкладках не влияют на масштабирование этой вкладки. Кроме того, изменения масштаба per-tab
сбрасываются при навигации; при навигации по вкладке страницы всегда загружаются с коэффициентами масштабирования per-origin
.
Характеристики
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Максимальное количество вызовов captureVisibleTab
в секунду. captureVisibleTab
требует больших затрат, и его не следует вызывать слишком часто.
Ценить
2
TAB_ID_NONE
Идентификатор, обозначающий отсутствие вкладки браузера.
Ценить
-1
TAB_INDEX_NONE
Индекс, обозначающий отсутствие индекса табуляции в tab_strip.
Ценить
-1
Методы
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
callback?: function,
)
Захватывает видимую область активной в настоящий момент вкладки в указанном окне. Чтобы вызвать этот метод, расширение должно иметь либо разрешение <all_urls> , либо разрешение activeTab . Помимо сайтов, к которым расширения обычно имеют доступ, этот метод позволяет расширениям захватывать конфиденциальные сайты, доступ к которым в противном случае ограничен, включая страницы chrome:-scheme, страницы других расширений и URL-адреса data:. Эти конфиденциальные сайты можно захватить только с разрешением activeTab. URL-адреса файлов могут быть записаны только в том случае, если расширению предоставлен доступ к файлу.
Параметры
- идентификатор окна
номер необязательно
Целевое окно. По умолчанию используется текущее окно .
- параметры
Детали изображения необязательно
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(dataUrl: string) => void
- URL-адрес данных
нить
URL-адрес данных, который кодирует изображение видимой области захваченной вкладки. Может быть назначен свойству 'src' элемента HTML
img
для отображения.
Возврат
Обещание<строка>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
Подключается к сценариям содержимого на указанной вкладке. Событие runtime.onConnect
запускается в каждом сценарии содержимого, выполняющемся на указанной вкладке для текущего расширения. Дополнительные сведения см. в разделе «Обмен сообщениями сценариев содержимого» .
Параметры
- идентификатор табуляции
число
- ConnectInfo
объект необязательный
- идентификатор документа
строка необязательна
Хром 106+Откройте порт для конкретного документа, идентифицируемого
documentId
, а не для всех кадров на вкладке. - идентификатор кадра
номер необязательно
Откройте порт для определенного кадра , определенного идентификатором
frameId
а не для всех кадров на вкладке. - имя
строка необязательна
Передается в onConnect для сценариев содержимого, которые прослушивают событие подключения.
Возврат
Порт, который можно использовать для связи со сценариями содержимого, работающими на указанной вкладке. Событие
runtime.Port
порта вызывается, если вкладка закрывается или не существует.
create()
chrome.tabs.create(
createProperties: object,
callback?: function,
)
Создает новую вкладку.
Параметры
- создать свойства
объект
- активный
логическое значение необязательно
Должна ли вкладка стать активной вкладкой в окне. Не влияет на то, находится ли окно в фокусе (см.
windows.update
). По умолчаниюtrue
. - индекс
номер необязательно
Положение, которое должна занимать вкладка в окне. Предоставленное значение ограничивается значением между нулем и количеством вкладок в окне.
- openTabId
номер необязательно
Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка открытия должна находиться в том же окне, что и вновь созданная вкладка.
- закрепленный
логическое значение необязательно
Должна ли быть закреплена вкладка. По умолчанию
false
- выбрано
логическое значение необязательно
УстарелоПожалуйста, используйте активный .
Должна ли вкладка стать выбранной вкладкой в окне. По умолчанию
true
- URL
строка необязательна
URL-адрес для первоначального перехода на вкладку. Полные URL-адреса должны включать схему (т. е. «http://www.google.com», а не «www.google.com»). Относительные URL-адреса относятся к текущей странице расширения. По умолчанию используется страница новой вкладки.
- идентификатор окна
номер необязательно
Окно, в котором создается новая вкладка. По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tab: Tab) => void
- вкладка
Созданная вкладка.
Возврат
Обещание< Вкладка >
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
Определяет основной язык содержимого на вкладке.
Параметры
- идентификатор табуляции
номер необязательно
По умолчанию активная вкладка текущего окна .
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(language: string) => void
- язык
нить
Код языка ISO, например
en
илиfr
. Полный список языков, поддерживаемых этим методом, см. в разделе kLanguageInfoTable . Проверяются столбцы со второго по четвертый, и возвращается первое значение, отличное от NULL, за исключением упрощенного китайского языка, для которого возвращаетсяzh-CN
. Для неизвестного/неопределенного языка возвращаетсяund
.
Возврат
Обещание<строка>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
discard()
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
Удаляет вкладку из памяти. Удаленные вкладки по-прежнему видны на полосе вкладок и перезагружаются при активации.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, которую нужно удалить. Если указано, вкладка удаляется, если только она не активна или уже удалена. Если этот параметр опущен, браузер отбрасывает наименее важную вкладку. Это может привести к сбою, если не существует удаляемых вкладок.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tab?: Tab) => void
- вкладка
Вкладка необязательна
Отброшенная вкладка, если она была успешно удалена; в противном случае не определено.
Возврат
Обещание< Вкладка | не определено>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
duplicate()
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
Дублирует вкладку.
Параметры
- идентификатор табуляции
число
Идентификатор вкладки, которую требуется дублировать.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tab?: Tab) => void
Возврат
Обещание< Вкладка | не определено>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
executeScript()
chrome.tabs.executeScript(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Заменен на scripting.executeScript
в манифесте V3.
Внедряет код JavaScript на страницу. Подробную информацию см. в разделе программного внедрения документа по сценариям контента.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, в которой нужно запустить скрипт; по умолчанию — активная вкладка текущего окна.
- подробности
Подробности сценария для запуска. Должен быть установлен либо код, либо свойство файла, но оба параметра не могут быть установлены одновременно.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result?: any[]) => void
- результат
любой[] необязательно
Результат скрипта в каждом внедренном кадре.
Возврат
Обещание<любое[] | не определено>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
get()
chrome.tabs.get(
tabId: number,
callback?: function,
)
Получает сведения об указанной вкладке.
Параметры
- идентификатор табуляции
число
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tab: Tab) => void
- вкладка
Возврат
Обещание< Вкладка >
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getAllInWindow()
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
)
Пожалуйста, используйте tabs.query
{windowId: windowId}
.
Получает сведения обо всех вкладках в указанном окне.
Параметры
- идентификатор окна
номер необязательно
По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tabs: Tab[]) => void
- вкладки
Вкладка []
Возврат
Обещание< Tab []>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getCurrent()
chrome.tabs.getCurrent(
callback?: function,
)
Получает вкладку, из которой выполняется вызов этого сценария. Возвращает undefined
, если вызывается из контекста, отличного от вкладок (например, фоновой страницы или всплывающего окна).
Параметры
Возврат
Обещание< Вкладка | не определено>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getSelected()
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
Пожалуйста, используйте tabs.query
{active: true}
.
Получает вкладку, выбранную в указанном окне.
Параметры
- идентификатор окна
номер необязательно
По умолчанию используется текущее окно .
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tab: Tab) => void
- вкладка
Возврат
Обещание< Вкладка >
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getZoom()
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
Получает текущий коэффициент масштабирования указанной вкладки.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, из которой нужно получить текущий коэффициент масштабирования; по умолчанию — активная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(zoomFactor: number) => void
- ZoomFactor
число
Текущий коэффициент масштабирования вкладки.
Возврат
Обещание<число>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
Получает текущие настройки масштабирования указанной вкладки.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, из которой нужно получить текущие настройки масштабирования; по умолчанию — активная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(zoomSettings: ZoomSettings) => void
- зумНастройки
Текущие настройки масштабирования вкладки.
Возврат
Обещание < ZoomSettings >
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
goBack()
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
Вернитесь на предыдущую страницу, если она доступна.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки для перехода назад; по умолчанию — выбранная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
goForward()
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
Перейдите на следующую страницу, если она доступна.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки для перехода вперед; по умолчанию — выбранная вкладка текущего окна.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
group()
chrome.tabs.group(
options: object,
callback?: function,
)
Добавляет одну или несколько вкладок в указанную группу или, если группа не указана, добавляет данные вкладки во вновь созданную группу.
Параметры
- параметры
объект
- создать свойства
объект необязательный
Конфигурации для создания группы. Невозможно использовать, если groupId уже указан.
- идентификатор окна
номер необязательно
Окно новой группы. По умолчанию используется текущее окно.
- идентификатор группы
номер необязательно
Идентификатор группы, в которую нужно добавить вкладки. Если не указано, будет создана новая группа.
- tabIds
номер | [номер, ...номер[]]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно добавить в указанную группу.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(groupId: number) => void
- идентификатор группы
число
Идентификатор группы, в которую были добавлены вкладки.
Возврат
Обещание<число>
Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
highlight()
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
Выделяет данные вкладки и фокусируется на первой из группы. Будет казаться, что ничего не происходит, если указанная вкладка в данный момент активна.
Параметры
- ВыделитеИнформацию
объект
- вкладки
номер | число[]
Один или несколько индексов вкладок, которые нужно выделить.
- идентификатор окна
номер необязательно
Окно, содержащее вкладки.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(window: Window) => void
- окно
Содержит сведения об окне, вкладки которого были выделены.
Возврат
Обещание < windows.Window >
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
insertCSS()
chrome.tabs.insertCSS(
tabId?: number,
details: InjectDetails,
callback?: function,
)
Заменено scripting.insertCSS
в Manifest V3.
Внедряет CSS на страницу. Стили, вставленные с помощью этого метода, можно удалить с помощью scripting.removeCSS
. Подробную информацию см. в разделе программного внедрения документа по сценариям контента.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, в которую нужно вставить CSS; по умолчанию — активная вкладка текущего окна.
- подробности
Подробности текста CSS для вставки. Должен быть установлен либо код, либо свойство файла, но оба параметра не могут быть установлены одновременно.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
Перемещает одну или несколько вкладок на новую позицию в пределах окна или в новое окно. Обратите внимание, что вкладки можно перемещать только в обычные (window.type === "normal") окна и обратно.
Параметры
- tabIds
номер | число[]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно переместить.
- перемещениеСвойства
объект
- индекс
число
Позиция, в которую нужно переместить окно. Используйте
-1
, чтобы разместить вкладку в конце окна. - идентификатор окна
номер необязательно
По умолчанию это окно, в котором в данный момент находится вкладка.
- перезвонить
функция необязательна
Возврат
- Хром 88+
Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
query()
chrome.tabs.query(
queryInfo: object,
callback?: function,
)
Получает все вкладки с указанными свойствами или все вкладки, если свойства не указаны.
Параметры
- запросИнформация
объект
- активный
логическое значение необязательно
Активны ли вкладки в своих окнах.
- слышимый
логическое значение необязательно
Хром 45+Слышны ли вкладки.
- автосбрасываемый
логическое значение необязательно
Хром 54+Может ли браузер автоматически удалять вкладки при нехватке ресурсов.
- текущее окно
логическое значение необязательно
Находятся ли вкладки в текущем окне .
- выброшенный
логическое значение необязательно
Хром 54+Отбрасываются ли вкладки. Отброшенная вкладка — это та вкладка, содержимое которой было выгружено из памяти, но все еще отображается в полосе вкладок. Его содержимое перезагружается при следующей активации.
- идентификатор группы
номер необязательно
Хром 88+Идентификатор группы, в которой находятся вкладки, или
tabGroups.TAB_GROUP_ID_NONE
для несгруппированных вкладок. - выделено
логическое значение необязательно
Подсвечиваются ли вкладки.
- индекс
номер необязательно
Положение вкладок в их окнах.
- последнееFocusedWindow
логическое значение необязательно
Находятся ли вкладки в последнем выделенном окне.
- приглушенный
логическое значение необязательно
Хром 45+Отключены ли на вкладках звук.
- закрепленный
логическое значение необязательно
Закреплены ли вкладки.
- статус
TabStatus необязательно
Статус загрузки вкладки.
- заголовок
строка необязательна
Сопоставьте заголовки страниц с шаблоном. Это свойство игнорируется, если у расширения нет разрешения
"tabs"
. - URL
строка | строка[] необязательно
Сопоставьте вкладки с одним или несколькими шаблонами URL-адресов . Идентификаторы фрагментов не совпадают. Это свойство игнорируется, если у расширения нет разрешения
"tabs"
. - идентификатор окна
номер необязательно
Идентификатор родительского окна или
windows.WINDOW_ID_CURRENT
для текущего окна . - тип окна
Тип окна необязательно
Тип окна, в котором находятся вкладки.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: Tab[]) => void
- результат
Вкладка []
Возврат
Обещание< Tab []>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
Перезагрузите вкладку.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки для перезагрузки; по умолчанию — выбранная вкладка текущего окна.
- перезагрузитьСвойства
объект необязательный
- обход кэша
логическое значение необязательно
Обходить ли локальное кэширование. По умолчанию установлено значение
false
.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
remove()
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
Закрывает одну или несколько вкладок.
Параметры
- tabIds
номер | число[]
Идентификатор вкладки или список идентификаторов вкладок, которые нужно закрыть.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeCSS()
chrome.tabs.removeCSS(
tabId?: number,
details: DeleteInjectionDetails,
callback?: function,
)
Заменено на scripting.removeCSS
в Manifest V3.
Удаляет со страницы CSS, который ранее был добавлен вызовом scripting.insertCSS
.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, из которой нужно удалить CSS; по умолчанию — активная вкладка текущего окна.
- подробности
Подробности текста CSS, который нужно удалить. Должен быть установлен либо код, либо свойство файла, но оба параметра не могут быть установлены одновременно.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
callback?: function,
)
Отправляет одно сообщение в сценарии содержимого на указанной вкладке с дополнительным обратным вызовом, который будет запускаться при отправке ответа. Событие runtime.onMessage
запускается в каждом сценарии содержимого, выполняющемся на указанной вкладке для текущего расширения.
Параметры
- идентификатор табуляции
число
- сообщение
любой
Сообщение для отправки. Это сообщение должно быть объектом, поддерживающим формат JSON.
- параметры
объект необязательный
- перезвонить
функция необязательна
Хром 99+Параметр
callback
выглядит так:(response: any) => void
- ответ
любой
Объект ответа JSON, отправленный обработчиком сообщения. Если при подключении к указанной вкладке возникает ошибка, обратный вызов вызывается без аргументов, а
runtime.lastError
устанавливается сообщение об ошибке.
Возврат
Обещание <любое>
Хром 99+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
sendRequest()
chrome.tabs.sendRequest(
tabId: number,
request: any,
callback?: function,
)
Пожалуйста, используйте runtime.sendMessage
.
Отправляет один запрос к сценариям содержимого на указанной вкладке с дополнительным обратным вызовом, который выполняется при отправке ответа. Событие extension.onRequest
вызывается в каждом сценарии содержимого, выполняющемся на указанной вкладке для текущего расширения.
Параметры
- идентификатор табуляции
число
- запрос
любой
- перезвонить
функция необязательна
Хром 99+Параметр
callback
выглядит так:(response: any) => void
- ответ
любой
Объект ответа JSON, отправленный обработчиком запроса. Если при подключении к указанной вкладке возникает ошибка, обратный вызов вызывается без аргументов, а
runtime.lastError
устанавливается сообщение об ошибке.
Возврат
Обещание <любое>
Хром 99+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
Масштабирует указанную вкладку.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки для масштабирования; по умолчанию — активная вкладка текущего окна.
- ZoomFactor
число
Новый коэффициент масштабирования. Значение
0
устанавливает для вкладки текущий коэффициент масштабирования по умолчанию. Значения больше0
задают коэффициент масштабирования (возможно, не по умолчанию) для вкладки. - перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
callback?: function,
)
Устанавливает параметры масштабирования для указанной вкладки, которые определяют, как обрабатываются изменения масштаба. Эти настройки сбрасываются до значений по умолчанию при переходе по вкладке.
Параметры
- идентификатор табуляции
номер необязательно
Идентификатор вкладки, для которой необходимо изменить параметры масштабирования; по умолчанию — активная вкладка текущего окна.
- зумНастройки
Определяет, как обрабатываются изменения масштаба и в какой области.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
Удаляет одну или несколько вкладок из соответствующих групп. Если какие-либо группы становятся пустыми, они удаляются.
Параметры
- tabIds
номер | [номер, ...номер[]]
Идентификатор вкладки или список идентификаторов вкладок, которые необходимо удалить из соответствующих групп.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
Изменяет свойства вкладки. Свойства, не указанные в updateProperties
не изменяются.
Параметры
- идентификатор табуляции
номер необязательно
По умолчанию выбрана вкладка текущего окна .
- ОбновлениеСвойства
объект
- активный
логическое значение необязательно
Должна ли вкладка быть активной. Не влияет на то, находится ли окно в фокусе (см.
windows.update
). - автосбрасываемый
логическое значение необязательно
Хром 54+Должна ли вкладка автоматически удаляться браузером при нехватке ресурсов.
- выделено
логическое значение необязательно
Добавляет или удаляет вкладку из текущего выбора.
- приглушенный
логическое значение необязательно
Хром 45+Должен ли звук на вкладке быть отключен.
- openTabId
номер необязательно
Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка открытия должна находиться в том же окне, что и эта вкладка.
- закрепленный
логическое значение необязательно
Должна ли быть закреплена вкладка.
- выбрано
логическое значение необязательно
УстарелоПожалуйста, используйте выделенный .
Следует ли выбирать вкладку.
- URL
строка необязательна
URL-адрес для перехода по вкладке. URL-адреса JavaScript не поддерживаются; вместо этого используйте
scripting.executeScript
.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(tab?: Tab) => void
Возврат
Обещание< Вкладка | не определено>
Хром 88+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
События
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Срабатывает при изменении активной вкладки в окне. Обратите внимание, что URL-адрес вкладки может не быть установлен во время запуска этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления, когда URL-адрес установлен.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(activeInfo: object) => void
- активинфо
объект
- идентификатор табуляции
число
Идентификатор вкладки, которая стала активной.
- идентификатор окна
число
Идентификатор окна, внутри которого изменилась активная вкладка.
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onActivated
.
Срабатывает при изменении выбранной вкладки в окне. Обратите внимание, что URL-адрес вкладки может не быть установлен во время запуска этого события, но вы можете прослушивать события tabs.onUpdated
, чтобы получать уведомления, когда URL-адрес установлен.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, selectInfo: object) => void
- идентификатор табуляции
число
- выберитеИнформация
объект
- идентификатор окна
число
Идентификатор окна, внутри которого изменилась выбранная вкладка.
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Вызывается, когда к окну прикреплена вкладка; например, потому что он был перемещен между окнами.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, attachInfo: object) => void
- идентификатор табуляции
число
- AttachInfo
объект
- новая позиция
число
- новыйWindowId
число
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Вызывается при создании вкладки. Обратите внимание, что URL-адрес вкладки и членство в группе вкладок могут быть не установлены во время запуска этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления, когда URL-адрес установлен или вкладка добавляется в группу вкладок.
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Вызывается, когда вкладка отделена от окна; например, потому что он был перемещен между окнами.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, detachInfo: object) => void
- идентификатор табуляции
число
- отсоединитьинформацию
объект
- старая позиция
число
- старыйWindowId
число
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onHighlighted
.
Вызывается при изменении выделенных или выбранных вкладок в окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(selectInfo: object) => void
- выберитеИнформация
объект
- tabIds
число[]
Все выделенные вкладки в окне.
- идентификатор окна
число
Окно, вкладки которого менялись.
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Вызывается при изменении выделенных или выбранных вкладок в окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(highlightInfo: object) => void
- ВыделитеИнформацию
объект
- tabIds
число[]
Все выделенные вкладки в окне.
- идентификатор окна
число
Окно, вкладки которого менялись.
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Вызывается при перемещении вкладки внутри окна. Запускается только одно событие перемещения, представляющее вкладку, которую пользователь непосредственно переместил. События перемещения не запускаются для других вкладок, которые должны перемещаться в ответ на перемещение вкладки вручную. Это событие не вызывается при перемещении вкладки между окнами; подробности см. tabs.onDetached
.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, moveInfo: object) => void
- идентификатор табуляции
число
- moveInfo
объект
- отиндекс
число
- toIndex
число
- идентификатор окна
число
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Вызывается при закрытии вкладки.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, removeInfo: object) => void
- идентификатор табуляции
число
- удалитьинформацию
объект
- isWindowClosing
логическое значение
Истинно, когда вкладка была закрыта, поскольку ее родительское окно было закрыто.
- идентификатор окна
число
Окно, вкладка которого закрыта.
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Вызывается, когда вкладка заменяется другой вкладкой из-за предварительной отрисовки или мгновенного отображения.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(addedTabId: number, removedTabId: number) => void
- добавленныйTabId
число
- удаленныйTabId
число
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onActivated
.
Срабатывает при изменении выбранной вкладки в окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, selectInfo: object) => void
- идентификатор табуляции
число
- выберитеИнформация
объект
- идентификатор окна
число
Идентификатор окна, внутри которого изменилась выбранная вкладка.
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Вызывается при обновлении вкладки.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, changeInfo: object, tab: Tab) => void
- идентификатор табуляции
число
- изменениеИнформация
объект
- слышимый
логическое значение необязательно
Хром 45+Новое звуковое состояние вкладки.
- автосбрасываемый
логическое значение необязательно
Хром 54+Новое состояние автоматического удаления вкладки.
- выброшенный
логическое значение необязательно
Хром 54+Новое отброшенное состояние вкладки.
- favIconUrl
строка необязательна
Новый URL-адрес значка вкладки.
- идентификатор группы
номер необязательно
Хром 88+Новая группа вкладки.
- mutedInfo
MutedInfo необязательно
Хром 46+Новое отключенное состояние вкладки и причина изменения.
- закрепленный
логическое значение необязательно
Новое закрепленное состояние вкладки.
- статус
TabStatus необязательно
Статус загрузки вкладки.
- заголовок
строка необязательна
Хром 48+Новое название вкладки.
- URL
строка необязательна
URL-адрес вкладки, если он изменился.
- вкладка
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Вызывается при масштабировании вкладки.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(ZoomChangeInfo: object) => void
- ZoomChangeИнформация
объект
- новыйZoomFactor
число
- старыйZoomFactor
число
- идентификатор табуляции
число
- зумНастройки