tabs

与浏览器的标签页系统进行交互。

注意: 使用 Manifest V3 或更高版本时,执行脚本、插入 CSS 和移除 CSS 的方法由 scripting API 通过 scripting.executeScript()scripting.insertCSS()scripting.removeCSS() 方法提供。

您可以使用此 API 获取打开的标签页列表(可根据各种条件进行筛选),以及打开、更新、移动、重新加载和移除标签页。您无法使用此 API 直接访问标签页中托管的内容,但可以使用 tabs.executeScript()tabs.insertCSS() API 将 JavaScript 和 CSS 插入到标签页中。

您可以使用此 API 的大部分功能而无需任何特殊权限。但是

  • 要访问 Tab.urlTab.titleTab.favIconUrl(或通过 tabs.query() 根据这些属性进行筛选),您需要拥有 "tabs" 权限,或者拥有与 Tab.url 匹配的主机权限

    • 自 Firefox 86 和 Chrome 50 起支持通过主机权限访问这些属性。在 Firefox 85 及更早版本中,则需要“tabs”权限。
  • 要使用 tabs.executeScript()tabs.insertCSS(),您必须拥有该标签页的主机权限

另外,您可以通过请求 "activeTab" 权限,暂时获取这些权限,仅适用于当前活动的标签页,并且仅在响应明确的用户操作时。

许多标签页操作使用 Tab id。Tab id 在单个浏览器会话中保证是唯一的。如果浏览器重启,则可以并且会重用 tab id。要在浏览器重启后将信息与标签页关联,请使用 sessions.setTabValue()

类型

tabs.MutedInfoReason

指定标签页被静音或取消静音的原因。

tabs.MutedInfo

此对象包含一个布尔值,指示标签页是否已静音,以及上次状态更改的原因。

tabs.PageSettings

用于控制 tabs.saveAsPDF() 方法如何将标签页渲染为 PDF。

tabs.Tab

此类型包含有关标签页的信息。

tabs.TabStatus

指示标签页是否已完成加载。

tabs.WindowType

承载此标签页的窗口类型。

tabs.ZoomSettingsMode

定义缩放更改是由浏览器处理、由扩展程序处理还是被禁用。

tabs.ZoomSettingsScope

定义缩放更改是会保留页面的来源,还是仅在此标签页中生效。

tabs.ZoomSettings

定义缩放设置 modescope 和默认缩放因子。

属性

tabs.TAB_ID_NONE

赋予非浏览器标签页(例如,开发者工具窗口中的标签页)的特殊 ID 值。

函数

tabs.captureTab()

创建一个数据 URL,该 URL 编码了给定标签页可见区域的图像。

tabs.captureVisibleTab()

创建一个数据 URL,该 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.group()

将标签页添加到标签页组。

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)

从页面中移除之前通过调用 tabs.insertCSS() 注入的 CSS。

tabs.saveAsPDF()

将当前页面保存为 PDF。

tabs.sendMessage()

向指定标签页中的内容脚本发送单条消息。

tabs.sendRequest() 已废弃

向指定标签页中的内容脚本发送单条请求。已废弃:请改用 tabs.sendMessage()

tabs.setZoom()

缩放指定的标签页。

tabs.setZoomSettings()

设置指定标签页的缩放设置。

tabs.show() 实验性

显示一个或多个已隐藏的标签页。

tabs.toggleReaderMode()

切换指定标签页的阅读器模式。

tabs.ungroup()

从标签页组中移除标签页。

tabs.update()

将标签页导航到新的 URL,或修改标签页的其他属性。

tabs.warmup()

预热标签页以加快后续切换。

事件

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

当标签页缩放时触发。

扩展程序示例

浏览器兼容性

注意: 此 API 基于 Chromium 的 chrome.tabs API。此文档源自 Chromium 代码中的 tabs.json