Описание
Используйте 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,
)
Добавляет одну или несколько вкладок в указанную группу или, если группа не указана, добавляет данные вкладки во вновь созданную группу.
Параметры
- параметры
объект
- создать свойства
объект необязательный
Конфигурации для создания группы. Невозможно использовать, если идентификатор группы уже указан.
- идентификатор окна
номер необязательно
Окно новой группы. По умолчанию используется текущее окно.
- идентификатор группы
номер необязательно
Идентификатор группы, в которую нужно добавить вкладки. Если не указано, будет создана новая группа.
- 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
в манифесте 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.
- параметры
объект необязательный
- идентификатор документа
строка необязательна
Хром 106+Отправьте сообщение конкретному документу, определенному
documentId
а не всем кадрам на вкладке. - идентификатор кадра
номер необязательно
Отправьте сообщение в конкретный кадр , определенный идентификатором
frameId
а не во все кадры на вкладке.
- перезвонить
функция необязательна
Хром 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,
)
Удаляет одну или несколько вкладок из их соответствующих групп. Если какие -либо группы становятся пустыми, они удалены.
Параметры
- табиды
номер | [номер, ... номер []]
Идентификатор TAB или список идентификаторов вкладок для удаления из их соответствующих групп.
- перезвонить
функция необязательно
Параметр
callback
выглядит так:() => void
Возврат
Обещание <Void>
Обещания поддерживаются только для Manifest V3, а затем другие платформы должны использовать обратные вызовы.
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
Изменяет свойства вкладки. Свойства, которые не указаны в updateProperties
не изменяются.
Параметры
- табид
номер необязательно
По умолчанию на выбранную вкладку текущего окна .
- UpdateProperties
объект
- активный
логическое значение необязательно
Должна ли вкладка быть активной. Не влияет на то, сфокусировано ли окно (см.
windows.update
). - Автодискабельно
логическое значение необязательно
Хром 54+Будет ли вкладка автоматически отбрасывать браузер, когда ресурсы низкие.
- выделено
логическое значение необязательно
Добавляет или удаляет вкладку из текущего выбора.
- приглушенный
логическое значение необязательно
Хром 45+Должна ли вкладка быть приглушенной.
- Openertabid
номер необязательно
Идентификатор вкладки, которая открыла эту вкладку. Если указано, вкладка «Открытие» должна быть в том же окне, что и эта вкладка.
- прикреплен
логическое значение необязательно
Должна ли вкладка быть закреплена.
- выбрано
логическое значение необязательно
УстарелПожалуйста, используйте выделено .
Следует ли выбрать вкладку.
- URL
строка необязательна
URL для навигации по вкладке. URL -адреса JavaScript не поддерживаются; Вместо этого используйте
scripting.executeScript
.
- перезвонить
функция необязательно
Параметр
callback
выглядит так:(tab?: Tab) => void
Возврат
Обещание < таб | неопределенно>
Хром 88+Обещания поддерживаются только для Manifest V3, а затем другие платформы должны использовать обратные вызовы.
События
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
Пожары, когда вкладка активна в окне меняется. Обратите внимание, что URL -адрес вкладки не может быть установлен в то время, когда это событие запускается, но вы можете прослушать события, чтобы быть уведомленными при установке URL -адреса.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(activeInfo: object) => void
- ActiveInfo
объект
- табид
число
Идентификатор вкладки, которая стала активной.
- Windowid
число
Идентификатор окна Активная вкладка изменилась внутри.
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onActivated
.
Пожары при изменении выбранной вкладки в окне. Обратите внимание, что URL -адрес вкладки не может быть установлен в то время, когда это событие запускается, но вы можете прослушать события tabs.onUpdated
, чтобы быть уведомленными при установке URL.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, selectInfo: object) => void
- табид
число
- selectInfo
объект
- Windowid
число
Идентификатор окна выбрана выбранная вкладка внутри.
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
Уволен, когда вкладка прикреплена к окну; Например, потому что он был перемещен между окнами.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, attachInfo: object) => void
- табид
число
- Attachinfo
объект
- новичка
число
- Newwindowid
число
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
Уволен, когда создается вкладка. Обратите внимание, что членство в TAB и членство в Tab Group не может быть установлено в то время, когда это событие будет выпущено, но вы можете прослушать события Onupdated, чтобы быть уведомленным при установке URL -адреса или вкладка добавлена в группу вкладок.
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
Уволен, когда вкладка отделена от окна; Например, потому что он был перемещен между окнами.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, detachInfo: object) => void
- табид
число
- Detachinfo
объект
- OldPosition
число
- OldWindowid
число
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onHighlighted
.
Выстрелили при изменении выделенных или выбранных вкладок в окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(selectInfo: object) => void
- selectInfo
объект
- табиды
число[]
Все выделенные вкладки в окне.
- Windowid
число
Окно, вкладки которого изменились.
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
Выстрелили при изменении выделенных или выбранных вкладок в окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(highlightInfo: object) => void
- hightingInfo
объект
- табиды
число[]
Все выделенные вкладки в окне.
- Windowid
число
Окно, вкладки которого изменились.
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
Уволен, когда вкладка перемещается в окне. Запускается только одно событие перемещения, представляющее вкладку, которую пользователь напрямую перенес. События перемещения не запускаются для других вкладок, которые должны двигаться в ответ на вкладку вручную. Это событие не запускается при перемещении вкладки между Windows; Для получения подробной информации см. tabs.onDetached
.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, moveInfo: object) => void
- табид
число
- MoveInfo
объект
- от Index
число
- Toindex
число
- Windowid
число
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
Уволен, когда вкладка закрыта.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, removeInfo: object) => void
- табид
число
- Удалить
объект
- IswindowClowing
логическое значение
Правда, когда вкладка была закрыта, потому что его родительское окно было закрыто.
- Windowid
число
Окно, вкладка которой закрыта.
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
Выстрелили, когда вкладка заменяется другой вкладкой из -за пререндерирования или мгновенного.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(addedTabId: number, removedTabId: number) => void
- Добавлент
число
- Удаленабид
число
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
Пожалуйста, используйте tabs.onActivated
.
Пожары при изменении выбранной вкладки в окне.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, selectInfo: object) => void
- табид
число
- selectInfo
объект
- Windowid
число
Идентификатор окна выбрана выбранная вкладка внутри.
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
Уволен, когда обновляется вкладка.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(tabId: number, changeInfo: object, tab: Tab) => void
- табид
число
- changeinfo
объект
- слышимый
логическое значение необязательно
Хром 45+Новое звуковое состояние вкладки.
- Автодискабельно
логическое значение необязательно
Хром 54+Новое автоматическое состояние вкладки.
- выброшен
логическое значение необязательно
Хром 54+Новое выброшенное состояние вкладки.
- Faviconurl
строка необязательна
Новый URL -адрес вкладки.
- замороженный
логическое значение необязательно
В ожиданииНовое замороженное состояние вкладки.
- группа
номер необязательно
Хром 88+Новая группа вкладки.
- mutedinfo
MutedInfo необязательно
Хром 46+Новое приглушенное состояние вкладки и причина изменения.
- прикреплен
логическое значение необязательно
Новое прикрепленное состояние вкладки.
- статус
Табстатус необязательно
Статус загрузки вкладки.
- заголовок
строка необязательна
Хром 48+Новое название вкладки.
- URL
строка необязательна
URL вкладки, если он изменился.
- вкладка
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
Уволен, когда вкладка увеличивается.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(ZoomChangeInfo: object) => void
- ZOOMCHANGEINFO
объект
- newzoomfactor
число
- Oldzoomfactor
число
- табид
число
- увеличение масштабирования