tabs
与浏览器的标签页系统进行交互。
注意: 使用 Manifest 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" 权限,暂时获取这些权限,仅适用于当前活动的标签页,并且仅在响应明确的用户操作时。
许多标签页操作使用 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
属性
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-
当标签页缩放时触发。
扩展程序示例
- 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 基于 Chromium 的 chrome.tabs API。此文档源自 Chromium 代码中的 tabs.json。