选项卡
与浏览器的标签系统交互。
注意:使用清单 V3 或更高版本时,执行脚本、插入 CSS 和删除 CSS 的方法由scripting
API 通过scripting.executeScript()
、scripting.insertCSS()
和scripting.removeCSS()
方法提供。
您可以使用此 API 获取打开的标签页列表,通过各种条件进行筛选,以及打开、更新、移动、重新加载和删除标签页。您无法直接使用此 API 访问标签页托管的内容,但可以使用tabs.executeScript()
或tabs.insertCSS()
API 将 JavaScript 和 CSS 插入标签页。
您无需任何特殊权限即可使用此 API 的大部分功能。但是
- 要访问
Tab.url
、Tab.title
和Tab.favIconUrl
(或通过tabs.query()
按这些属性进行筛选),您需要拥有"tabs"
权限,或者拥有与Tab.url
匹配的主机权限。- 从 Firefox 86 和 Chrome 50 开始,主机权限支持访问这些属性。在 Firefox 85 及更早版本中,需要“tabs”权限。
- 要使用
tabs.executeScript()
或tabs.insertCSS()
,您必须拥有该标签页的主机权限。
或者,您可以暂时获取这些权限,仅针对当前活动的标签页,并且仅在响应明确的用户操作时,方法是请求"activeTab"
权限。
许多标签页操作使用标签页id
。标签页id
在浏览器会话内保证对单个标签页唯一。如果浏览器重新启动,则它可以而且会重用标签页id
。要将信息与标签页关联,以便在浏览器重新启动后保持一致,请使用sessions.setTabValue()
。
类型
tabs.MutedInfoReason
-
指定标签页被静音或取消静音的原因。
tabs.MutedInfo
-
此对象包含一个布尔值,指示标签页是否静音,以及最后一次状态更改的原因。
tabs.PageSettings
-
用于控制标签页如何通过
tabs.saveAsPDF()
方法以 PDF 格式呈现。 tabs.标签页
-
此类型包含有关标签页的信息。
tabs.TabStatus
-
指示标签页是否已完成加载。
tabs.WindowType
-
托管此标签页的窗口类型。
tabs.ZoomSettingsMode
-
定义缩放更改是由浏览器处理、由扩展处理,还是被禁用。
tabs.ZoomSettingsScope
-
定义缩放更改将针对页面的来源持久保存,还是仅在此标签页中生效。
tabs.ZoomSettings
属性
tabs.TAB_ID_NONE
-
分配给不是浏览器标签页的标签页的特殊 ID 值(例如,开发者工具窗口中的标签页)。
函数
tabs.captureTab()
-
创建一个数据 URL,它对给定标签页的可见区域的图像进行编码。
tabs.captureVisibleTab()
-
创建一个数据 URL,它对指定窗口中当前活动标签页的可见区域的图像进行编码。
tabs.connect()
-
在扩展的后台脚本(或其他特权脚本,例如弹出窗口脚本或选项页面脚本)与在指定标签页中运行的任何内容脚本 之间建立消息传递连接。
tabs.create()
-
创建一个新标签页。
tabs.detectLanguage()
-
检测标签页中内容的主要语言。
tabs.discard()
-
丢弃一个或多个标签页。
tabs.duplicate()
-
复制标签页。
tabs.executeScript()
(仅限清单 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()
(仅限清单 V2)-
将 CSS 注入页面。
tabs.move()
-
将一个或多个选项卡移动到同一窗口中的新位置,或移动到不同的窗口。
tabs.moveInSuccession()
-
修改一组选项卡的继承关系。
tabs.print()
-
打印活动选项卡的内容。
tabs.printPreview()
-
打开活动选项卡的打印预览。
tabs.query()
-
获取具有指定属性的所有选项卡,如果未指定任何属性,则获取所有选项卡。
tabs.reload()
-
重新加载选项卡,可以选择绕过本地 Web 缓存。
tabs.remove()
-
关闭一个或多个选项卡。
tabs.removeCSS()
(仅限清单 V2)-
从页面中移除之前通过调用
tabs.insertCSS()
注入的 CSS。 tabs.saveAsPDF()
-
将当前页面保存为 PDF。
tabs.sendMessage()
-
向指定选项卡中的内容脚本发送一条消息。
tabs.sendRequest()
已弃用-
向指定选项卡中的内容脚本发送一个请求。已弃用:请改用
tabs.sendMessage()
。 tabs.setZoom()
-
缩放指定选项卡。
tabs.setZoomSettings()
-
设置指定选项卡的缩放设置。
tabs.show()
实验性-
显示一个或多个已
隐藏
的选项卡。 tabs.toggleReaderMode()
-
切换指定选项卡的阅读器模式。
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
-
当选项卡缩放时触发。
浏览器兼容性
BCD 表仅在浏览器中加载
示例扩展
- annotate-page
- apply-css
- beastify
- bookmark-it
- chill-out
- 命令
- 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
- 权限
- session-state
- store-collected-images
- tabs-tabs-tabs
注意:此 API 基于 Chromium 的 chrome.tabs
API。此文档源自 Chromium 代码中的 tabs.json
。