Spec-Zone.ru › Web Extensions

Вкладки

Взаимодействие с системой вкладок браузера.

Примечание: При использовании Manifest V3 или более поздней версии, методы выполнения скриптов, вставки CSS и удаления CSS предоставляются API scripting через методы scripting.executeScript(), scripting.insertCSS() и scripting.removeCSS().

Вы можете использовать этот API для получения списка открытых вкладок, отфильтрованных по различным критериям, а также для открытия, обновления, перемещения, перезагрузки и удаления вкладок. Прямой доступ к содержимому, размещённому в вкладках, с помощью этого API недоступен, но вы можете вставлять JavaScript и CSS в вкладки, используя API tabs.executeScript() или tabs.insertCSS().

Вы можете использовать большую часть этого API без специальных разрешений. Однако:

  • Для доступа к Tab.url, Tab.title, и Tab.favIconUrl (или для фильтрации по этим свойствам через tabs.query()), вам необходимо иметь разрешение "tabs" permission, или иметь разрешения на хостинг, которые соответствуют Tab.url.
    • Доступ к этим свойствам через разрешения на хостинг поддерживается с Firefox 86 и Chrome 50. В Firefox 85 и ранее вместо этого требовалось разрешение "tabs".
  • Для использования tabs.executeScript() или tabs.insertCSS(), вы должны иметь разрешение на хостинг host permission для вкладки.

В качестве альтернативы, вы можете временно получить эти разрешения, только для текущей активной вкладки и только в ответ на явное действие пользователя, запросив разрешение "activeTab".

Многие операции с вкладками используют идентификатор вкладки id. Идентификаторы вкладок id гарантированно уникальны для каждой вкладки только в рамках одной сессии браузера. Если браузер перезапускается, он может и будет повторно использовать идентификаторы вкладок id. Для ассоциации информации с вкладкой при перезапуске браузера используйте sessions.setTabValue().

Типы

tabs.MutedInfoReason

Указывает причину приглушения или отключения звука вкладки.

tabs.MutedInfo

Этот объект содержит логическое значение, указывающее, приглушена ли вкладка, и причину последнего изменения состояния.

tabs.PageSettings

Используется для управления тем, как вкладка отображается как PDF методом tabs.saveAsPDF().

tabs.Tab

Этот тип содержит информацию о вкладке.

tabs.TabStatus

Указывает, загрузилась ли вкладка.

tabs.WindowType

Тип окна, содержащего данную вкладку.

tabs.ZoomSettingsMode

Определяет, обрабатываются ли изменения масштаба браузером, расширением или отключены.

tabs.ZoomSettingsScope

Определяет, будут ли изменения масштаба сохраняться для источника страницы или действовать только в данной вкладке.

tabs.ZoomSettings

Определяет настройки масштаба mode, scope и коэффициент масштаба по умолчанию.

Свойства

tabs.TAB_ID_NONE

Специальное значение ID, присваиваемое вкладкам, которые не являются вкладками браузера (например, вкладкам в окнах разработчика).

Функции

tabs.captureTab()

Создает данные URL, кодируя изображение видимой области данной вкладки.

tabs.captureVisibleTab()

Создает данные URL, кодируя изображение видимой области текущей активной вкладки в указанном окне.

tabs.connect()

Устанавливает соединение для обмена сообщениями между фоновыми скриптами расширения (или другими привилегированными скриптами, такими как скрипты всплывающих окон или скрипты страниц настроек) и любыми скриптами содержимого, выполняемыми в указанной вкладке.

tabs.create()

Создаёт новую вкладку.

tabs.detectLanguage()

Определяет основной язык содержимого вкладки.

tabs.discard()

Удаляет одну или несколько вкладок.

tabs.duplicate()

Создаёт дубликат вкладки.

tabs.executeScript() (только для Manifest V2)

Вставляет JavaScript-код в страницу.

tabs.get()

Получает подробную информацию об указанной вкладке.

tabs.getAllInWindow() Устаревший

Получает подробную информацию обо всех вкладках в указанном окне.

tabs.getCurrent()

Получает информацию о вкладке, в которой выполняется этот скрипт, в виде объекта tabs.Tab.

tabs.getSelected() Устаревший

Получает выбранную вкладку в указанном окне. Устарело: используйте tabs.query({active: true}) вместо этого.

tabs.getZoom()

Получает текущий коэффициент масштабирования указанной вкладки.

tabs.getZoomSettings()

Получает текущие настройки масштабирования для указанной вкладки.

tabs.goForward()

Перейти вперёд к следующей странице, если она доступна.

tabs.goBack()

Перейти назад к предыдущей странице, если она доступна.

tabs.hide() Экспериментальная

Скрывает одну или несколько вкладок.

tabs.highlight()

Выделяет одну или несколько вкладок.

tabs.insertCSS() (только для Manifest V2)

Вставляет CSS-код в страницу.

tabs.move()

Перемещает одну или несколько вкладок в новое положение в том же окне или в другое окно.

tabs.moveInSuccession()

Изменяет порядок следования группы вкладок.

tabs.print()

Печать содержимого активной вкладки.

tabs.printPreview()

Открытие предварительного просмотра печати для активной вкладки.

tabs.query()

Получает все вкладки, которые соответствуют указанным свойствам, или все вкладки, если свойства не указаны.

tabs.reload()

Перезагрузить вкладку, возможно, пропустив локальный кэш веб-страницы.

tabs.remove()

Закрывает одну или несколько вкладок.

tabs.removeCSS() (только для Manifest V2)

Удаляет CSS-код со страницы, который был ранее вставлен с помощью вызова tabs.insertCSS().

tabs.saveAsPDF()

Сохраняет текущую страницу в формате PDF.

tabs.sendMessage()

Отправляет единственное сообщение скриптам содержимого в указанной вкладке.

tabs.sendRequest() Устаревший

Отправляет единственный запрос скриптам содержимого в указанной вкладке. Устарело: используйте tabs.sendMessage() вместо этого.

tabs.setZoom()

Изменяет масштаб указанной вкладки.

tabs.setZoomSettings()

Устанавливает настройки масштабирования для указанной вкладки.

tabs.show() Экспериментальная

Отображает одну или несколько вкладок, которые были скрыты с помощью hidden.

tabs.toggleReaderMode()

Переключает режим чтения для указанной вкладки.

tabs.update()

Перенаправить вкладку на новый URL или изменить другие свойства вкладки.

tabs.warmup()

Подготовить вкладку для потенциально более быстрого переключения в дальнейшем.

END_OF_DOCUMENT_MARKER

События

tabs.onActivated

Срабатывает при изменении активной вкладки в окне. Обратите внимание, что URL вкладки может быть не задан на момент срабатывания этого события.

tabs.onActiveChanged Устаревшее

Срабатывает при изменении выделенной вкладки в окне. Устаревшее: используйте tabs.onActivated вместо этого.

tabs.onAttached

Срабатывает при присоединении вкладки к окну, например, при перемещении между окнами.

tabs.onCreated

Срабатывает при создании вкладки. Обратите внимание, что URL вкладки может быть не задан на момент срабатывания этого события.

tabs.onDetached

Срабатывает при отсоединении вкладки от окна, например, при перемещении между окнами.

tabs.onHighlightChanged Устаревшее

Срабатывает при изменении выделенной или выбранной вкладки в окне. Устаревшее: используйте tabs.onHighlighted вместо этого.

tabs.onHighlighted

Срабатывает при изменении выделенной или выбранной вкладки в окне.

tabs.onMoved

Срабатывает при перемещении вкладки в пределах окна.

tabs.onRemoved

Срабатывает при закрытии вкладки.

tabs.onReplaced

Срабатывает, когда вкладка заменяется другой вкладкой из-за предварительной обработки.

tabs.onSelectionChanged Устаревшее

Срабатывает при изменении выбранной вкладки в окне. Устаревшее: используйте tabs.onActivated вместо этого.

tabs.onUpdated

Срабатывает при обновлении вкладки.

tabs.onZoomChange

Срабатывает при изменении масштаба вкладки.

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet
MutedInfo 46 79 47 ? 33
14reason и extensionId не будут заполнены.
? ? Нет ? Нет ?
MutedInfoReason 46 79 47 ? 33 Нет ? ? Нет ? Нет ?
PageSettings Нет Нет 56 ? Нет Нет ? ? Нет ? Нет ?
TAB_ID_NONE 46 14 45 ? 33 14 ? ? 54 ? 15 ?
TabStatus 5 14 45 ? 15 14 ? ? 54 ? 15 ?
WindowType Да 14 45 ? Да 14 ? ? 54 ? 15 ?
ZoomSettings 38 79 45 ? 25 Нет ? ? Нет ? Нет ?
ZoomSettingsMode 38 79 45 ? 25 Нет ? ? Нет ? Нет ?
ZoomSettingsScope 38 79 45 ? 25 Нет ? ? Нет ? Нет ?
captureTab Нет Нет 59 ? Нет Нет ? ? 82 ? Нет ?
captureVisibleTab
5По умолчанию формат файла — 'jpeg'.
15 47 ?
15По умолчанию формат файла — 'jpeg'.
14["По умолчанию формат файла — 'jpeg'.", "<all_urls> разрешение является необязательным."]
? ? 54 ?
15["По умолчанию формат файла — 'jpeg'.", "<all_urls> разрешение является необязательным."]
?
connect 5 79 45 ? 15 14 ? ? 54 ? 15 ?
create 5 14 45 ? 15 14 ? ? 54 ? 15 ?
detectLanguage 5 14 45 ? 15
14["Будет возвращать und (не определённый язык) для ОС ниже 11.", "Идентификатор локали чаще будет включать код страны."]
? ? Нет ? 15 ?
discard
54["Принимает только один идентификатор вкладки в качестве параметра, а не массив.", "Аргумент идентификатора вкладки является необязательным: если он опущен, браузер отбрасывает наименее важную вкладку.", "Обработчик получает объект Tab, представляющий вкладку, которая была отброшена.", "Вкладки, чей документ содержит обработчик beforeunload, который отображает запрос, будут отброшены."]
14 58 ?
41["Принимает только один идентификатор вкладки в качестве параметра, а не массив.", "Аргумент идентификатора вкладки является необязательным: если он опущен, браузер отбрасывает наименее важную вкладку.", "Обработчик получает объект Tab, представляющий вкладку, которая была отброшена.", "Вкладки, чей документ содержит обработчик beforeunload, который отображает запрос, будут отброшены."]
Нет ? ? Нет ? Нет ?
duplicate 23 79 47 ? 15 14 ? ? Нет ? 15 ?
executeScript
5["Расширения не могут впрыскивать скрипты в свои собственные страницы с помощью этого API.", "Доступно только для использования в манифесте версии 2."]
14Доступно только для использования в манифесте версии 2.
43["До версии 50 Firefox передавал единственное значение результата в свой обратный вызов, а не массив, если не было установлено 'allFrames'.", "Доступно только для использования в манифесте версии 2."]
?
15["Расширения не могут впрыскивать скрипты в свои собственные страницы с помощью этого API.", "Доступно только для использования в манифесте версии 2."]
14Доступно только для использования в манифесте версии 2.
? ?
54Доступно только для использования в манифесте версии 2.
?
15Доступно только для использования в манифесте версии 2.
?
get 5 14 45 ? 15 14 ? ? 54 ? 15 ?
getAllInWindow 5 79 Нет ? Нет Нет ? ? Нет ? Нет ?
getCurrent 6 14 45 ? 15 14 ? ? 54 ? 15 ?
getSelected Да 79 Нет ? Нет 14 ? ? Нет ? 15 ?
getZoom Да 79 45 ? Да 14 ? ? Нет ? 15 ?
getZoomSettings 42 79 45 ? 29 Нет ? ? Нет ? Нет ?
goBack 72 79 77 ? 60 14 ? ? 79 ? 15 ?
goForward 72 79 77 ? 60 14 ? ? 79 ? 15 ?
hide Нет Нет 61 ? Нет Нет ? ? Нет ? Нет ?
highlight Да 79 63 ? Нет Нет ? ? Нет ? Нет ?
insertCSS
ДаДоступно только для использования в манифесте V2.
14Доступно только для использования в манифесте V2.
47Доступно только для использования в манифесте V2.
?
ДаДоступно только для использования в манифесте V2.
14Доступно только для использования в манифесте V2.
? ?
54Доступно только для использования в манифесте V2.
?
15Доступно только для использования в манифесте V2.
?
move Да 79 46 ? Да Нет ? ? Нет ? Нет ?
moveInSuccession Нет Нет 65 ? Нет Нет ? ? Нет ? Нет ?
onActivated Да 14 45 ? Да 14 ? ? 54 ? 15 ?
onActiveChanged Да 79 Нет ? Нет Нет ? ? Нет ? Нет ?
onAttached Да 15 45 ? Да 14 ? ? 54 ? 15 ?
onCreated Да 14 45 ? Да 14 ? ? 54 ? 15 ?
onDetached Да 15 45 ? Да 14 ? ? 54 ? 15 ?
onHighlightChanged Да 79 Нет ? Нет Нет ? ? Нет ? Нет ?
onHighlighted Да 79 63
45–62Реализовано как псевдоним для onActivated.
? Нет 14 ? ?
54Реализовано как псевдоним для onActivated.
? 15 ?
onMoved Да 79 45 ? Да 14 ? ? Нет ? 15 ?
onRemoved Да 14 45 ? Да 14 ? ? 54 ? 15 ?
onReplaced Да 79 Нет ? Да Нет ? ? Нет ? Нет ?
onSelectionChanged Да 79 Нет ? Нет Нет ? ? Нет ? Нет ?
onUpdated Да 14 45 ? Да 14 ? ? 54 ? 15 ?
onZoomChange Да 79 45 ? Да Нет ? ? Нет ? Нет ?
print Нет Нет 56 ? Нет Нет ? ? Нет ? Нет ?
printPreview Нет Нет 56 ? Нет Нет ? ? Нет ? Нет ?
query Да
14Значения panel, app, devtools и popup для WindowType не поддерживаются.
45 ? Да
14Сопоставление по шаблонам поддерживает * и ?.
? ? 54 ?
15Сопоставление по шаблонам поддерживает * и ?.
?
reload Да 17 45 ? Да 14 ? ? 54 ? 15 ?
remove Да 14 45 ? Да 14 ? ? 54 ? 15 ?
removeCSS
87Доступно только для использования в манифесте V2.
87Доступно только для использования в манифесте V2.
49Доступно только для использования в манифесте V2.
?
73Доступно только для использования в манифесте V2.
14Доступно только для использования в манифесте V2.
? ?
54Доступно только для использования в манифесте V2.
?
15Доступно только для использования в манифесте V2.
?
saveAsPDF Нет Нет 81
56–81Эта функция не работает на macOS.
? Нет Нет ? ? Нет ? Нет ?
sendMessage Да
14Ответ не отправляется после обновления принимающей вкладки, если отсутствует прослушиватель runtime.onMessage.
45 ? Да 14 ? ? 54 ? 15 ?
sendRequest Да 79 Нет ? Нет Нет ? ? Нет ? Нет ?
setZoom Да 79 45 ? Да 14 ? ? Нет ? 15 ?
setZoomSettings Да 79 Нет ? Да Нет ? ? Нет ? Нет ?
show Нет Нет 61 ? Нет Нет ? ? Нет ? Нет ?
toggleReaderMode Нет Нет 58 ? Нет Нет ? ? Нет ? Нет ?
update Да 14 45 ? Да 14 ? ? 54 ? 15 ?
warmup Нет Нет 79 ? Нет Нет ? ? Нет ? Нет ?

Примеры расширений

  • annotate-page
  • apply-css
  • beastify
  • bookmark-it
  • chill-out
  • commands
  • context-menu-copy-link-with-types
  • contextual-identities
  • cookie-bg-picker
  • devtools-panels
  • find-across-tabs
  • firefox-code-search
  • history-deleter
  • imagify
  • list-cookies
  • menu-demo
  • menu-labelled-open
  • menu-remove-element
  • open-my-page-button
  • permissions
  • session-state
  • store-collected-images
  • tabs-tabs-tabs

Примечание: Этот API основан на API chrome.tabs Chromium. Данная документация взята из tabs.json кода Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API