这篇翻译不完整。请帮忙从英语翻译这篇文章

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

你可以使用该API获取一个以打开标签的列表并且使用各种标准过滤标签,并进行 打开, 刷新,移动,重载,移除操作。该API不能直接访问标签中的主机内容,但是你可以使用 tabs.executeScript() 或者 tabs.insertCSS() APIs,来插入javascript和CSS。

你可以在不需要任何特殊权限的情况下使用该APIS的大部分, 除了:

或者你可以仅仅只为当前的活动标签临时的获取这些权限并且仅仅只响应一个显示的用户行为,请查看 "activeTab" permission.

枚举值

tabs.MutedInfoReason
确定一个标签静音与否的原因(用户修改,扩展修改)。
tabs.MutedInfo
该对象包含一个布尔值只是该标签是否静音,以及最近一次静音的原因。
tabs.Tab
该值包含了一个标签的信息。
tabs.TabStatus
指示某个标签是否已经加载完成
tabs.WindowType
包含该标签的窗口类型。
tabs.ZoomSettingsMode
定义缩放由浏览器控制或是扩展,或者禁用。
tabs.ZoomSettingsScope
定义缩放将对某个网址持续生效,或者仅仅只针对该标签。
tabs.ZoomSettings
定义缩放设置。 modescope, 和默认缩放比例。

属性

tabs.TAB_ID_NONE
给予非浏览器标签的一个特殊ID值 (比如,在开发工具中的标签)。

方法

tabs.connect()
在运行于该标签的任何 content scripts  和该扩展的后台脚本(或者其他的比如弹出菜单脚本或者设置页面脚本)间创建一个消息连接。
tabs.create()
创建一个新标签。
tabs.captureVisibleTab()
创意一个数据统一资源标识符解码在规定窗口中当前活动标签的可视区域重的一个图片。
tabs.detectLanguage()
检查在一个标签中的主要语言。
tabs.duplicate()
复制一个标签
tabs.executeScript()
向一个页面注入脚本。
tabs.get()
取回制定标签的详细信息。
tabs.getAllInWindow()
获取指定窗口所有标签的详细信息。
tabs.getCurrent()
返回一个 tabs.Tab 对象包含了该脚本当前的宿主标签的信息。
tabs.getSelected()
获取在指定窗口被选定的标签。
tabs.getZoom()
获取制定标签的缩放系数。
tabs.getZoomSettings()
获取指定标签的缩放设置。
tabs.highlight()
高亮显示一个或多个标签。
tabs.insertCSS()
向一个页面注入CSS。
tabs.removeCSS()
移除之前调用tabs.insertCSS() 注入的一个css。
tabs.move()
移动一个或多个标签页到同一窗口的一个新的位置或是到不同窗口。
tabs.query()
获取所有包含指定属性的标签,如果没有属性则获取所有标签。
tabs.reload()
重在一个标签,可选的可以绕过本地缓存。
tabs.remove()
关闭一个或多个标签。
tabs.sendMessage()
向一个指定标签的content script 发送单个消息。
tabs.sendRequest()
向一个指定标签的content script 发送一个单一请求。 过时: 请使用 tabs.sendMessage() 替代。
tabs.setZoom()
缩放指定标签。
tabs.setZoomSettings()
为一个制定标签设置缩放选项。
tabs.update()
导航一个标签到新的地址,或是修改其它的属性。

Events

tabs.onActivated
当窗口活动标签改变时触发,注意当该消息触发时,标签地址可能没有被设置。
tabs.onActiveChanged
 已过时: 请使用 tabs.onActivated 代替。
tabs.onAttached
当一个标签被附加到一个窗口时触发,因为他可能在窗口间移动。
tabs.onCreated
当一个标签被创建时触发,注意当该事件触发时可能没有设置地址。
tabs.onDetached
当一个标签脱离一个窗口时被触发。
tabs.onHighlightChanged
过时: 请使用 tabs.onHighlighted 代替。
tabs.onHighlighted
当一个标签被高亮显示或是被选中时触发。
tabs.onMoved
当一个标签在一个窗口内移动时被触发。
tabs.onRemoved
当一个标签关闭时被处罚。
tabs.onReplaced
当一个标签因为预载取代另一个标签时被触发。
tabs.onSelectionChanged
 以过时: 请使用 tabs.onActivated 代替。
tabs.onUpdated
当一个标签被更新时触发。
tabs.onZoomChange
当一个标签被缩放时触发

Browser compatibility

ChromeEdgeFirefoxFirefox for AndroidOpera
MutedInfo Yes No47 No Yes
MutedInfoReason Yes No47 No Yes
PageSettings No No56 No No
TAB_ID_NONE Yes Yes4554 Yes
TabStatus Yes Yes4554 Yes
WindowType Yes Yes4554 Yes
ZoomSettings Yes No45 No Yes
ZoomSettingsMode Yes No45 No Yes
ZoomSettingsScope Yes No45 No Yes
captureVisibleTab Yes *154754 Yes *
connect Yes No4554 Yes
create Yes Yes4554 Yes
detectLanguage Yes Yes45 No Yes
discard54 * Yes58 No Yes *
duplicate Yes No4754 Yes
executeScript Yes Yes43 *54 Yes
get Yes Yes4554 Yes
getAllInWindow Yes No4554 No
getCurrent Yes Yes4554 Yes
getSelected Yes No No No No
getZoom Yes No45 No Yes
getZoomSettings Yes No45 No Yes
highlight Yes No No No No
insertCSS Yes Yes4754 Yes
move Yes No46 No Yes
onActivated Yes Yes4554 Yes
onActiveChanged Yes No No No No
onAttached Yes154554 Yes
onCreated Yes Yes4554 Yes
onDetached Yes154554 Yes
onHighlightChanged Yes No No No No
onHighlighted Yes No4554 No
onMoved Yes No45 No Yes
onRemoved Yes Yes4554 Yes
onReplaced Yes No No No Yes
onSelectionChanged Yes No No No No
onUpdated Yes Yes4554 Yes
onZoomChange Yes No45 No Yes
print No No56 No No
printPreview No No56 No No
query Yes Yes *4554 Yes
reload Yes No4554 Yes
remove Yes Yes4554 Yes
removeCSS No No4954 No
saveAsPDF No No56 * No No
sendMessage Yes Yes *4554 Yes
sendRequest Yes No No No No
setZoom Yes No45 No Yes
setZoomSettings Yes No No No Yes
toggleReaderMode No No58 No No
update Yes Yes4554 Yes

Chrome incompatibilities

tabs

  • In Firefox, relative URLs passed into tabs.executeScript() or tabs.insertCSS() are resolved relative to the current page URL. In Chrome, these URLs are resolved relative to the extension's base URL. To work cross-browser, you can specify the path as an absolute URL, starting at the extension's root, like this:

    /path/to/script.js
  • In Firefox, querying tabs by URL with tabs.query() requires "tabs" permission. In Chrome, it's possible without the "tabs" permission but will limit results to tabs whose URLs match host permissions.
  • In Firefox, the tabs.remove() promise is fulfilled after the beforeunload event while in Chrome the callback does not wait for beforeunload.

Example extensions

Acknowledgements

This API is based on Chromium's chrome.tabs API. This documentation is derived from tabs.json in the Chromium code.

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

文档标签和贡献者

此页面的贡献者: Hypophrenia, wbamberg
最后编辑者: Hypophrenia,