tabs
====

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

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

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

* 获取 `Tab.url`, `Tab.title`, and `Tab.favIconUrl`, 你需要拥有 "tabs" 权限. 在火狐，这也意味着你需要 "tabs" ，来通过 URL 使用 `query`。
* 使用 `tabs.executeScript()` (en-US) 或者 `tabs.insertCSS()` 你必须在目标标签拥有 host permission 。

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

枚举值
---

`tabs.MutedInfoReason` (en-US)

确定一个标签静音与否的原因（用户修改，扩展修改）。

`tabs.MutedInfo` (en-US)

该对象包含一个布尔值只是该标签是否静音，以及最近一次静音的原因。

`tabs.Tab`

该值包含了一个标签的信息。

`tabs.TabStatus` (en-US)

指示某个标签是否已经加载完成

`tabs.WindowType` (en-US)

包含该标签的窗口类型。

`tabs.ZoomSettingsMode` (en-US)

定义缩放由浏览器控制或是扩展，或者禁用。

`tabs.ZoomSettingsScope` (en-US)

定义缩放将对某个网址持续生效，或者仅仅只针对该标签。

`tabs.ZoomSettings` (en-US)

定义缩放设置。 `mode` (en-US), `scope` (en-US), 和默认缩放比例。

属性
--

`tabs.TAB_ID_NONE` (en-US)

给予非浏览器标签的一个特殊 ID 值（比如，在开发工具中的标签）。

方法
--

`tabs.connect()` (en-US)

在运行于该标签的任何 content scripts 和该扩展的后台脚本（或者其他的比如弹出菜单脚本或者设置页面脚本）间创建一个消息连接。

`tabs.create()` (en-US)

创建一个新标签。

`tabs.captureVisibleTab()` (en-US)

创意一个数据统一资源标识符解码在规定窗口中当前活动标签的可视区域重的一个图片。

`tabs.detectLanguage()` (en-US)

检查在一个标签中的主要语言。

`tabs.duplicate()` (en-US)

复制一个标签

`tabs.executeScript()` (en-US)

向一个页面注入脚本。

`tabs.get()` (en-US)

取回制定标签的详细信息。

`tabs.getAllInWindow()` (en-US) 
已弃用

获取指定窗口所有标签的详细信息。

`tabs.getCurrent()` (en-US)

返回一个 `tabs.Tab` 对象包含了该脚本当前的宿主标签的信息。

`tabs.getSelected()` (en-US) 
已弃用

获取在指定窗口被选定的标签。

`tabs.getZoom()` (en-US)

获取制定标签的缩放系数。

`tabs.getZoomSettings()` (en-US)

获取指定标签的缩放设置。

`tabs.highlight()` (en-US)

高亮显示一个或多个标签。

`tabs.insertCSS()`

向一个页面注入 CSS。

`tabs.removeCSS()` (en-US)

移除之前调用`tabs.insertCSS()` 注入的一个 css。

`tabs.move()` (en-US)

移动一个或多个标签页到同一窗口的一个新的位置或是到不同窗口。

`tabs.query()`

获取所有包含指定属性的标签，如果没有属性则获取所有标签。

`tabs.reload()` (en-US)

重载一个标签，可选的可以绕过本地缓存。

`tabs.remove()` (en-US)

关闭一个或多个标签。

`tabs.sendMessage()` (en-US)

向一个指定标签的 content script 发送单个消息。

`tabs.sendRequest()` (en-US) 
已弃用

向一个指定标签的 content script 发送一个单一请求。 **过时**: 请使用 `tabs.sendMessage()` (en-US) 替代。

`tabs.setZoom()` (en-US)

缩放指定标签。

`tabs.setZoomSettings()` (en-US)

为一个制定标签设置缩放选项。

`tabs.update()` (en-US)

导航一个标签到新的地址，或是修改其他的属性。

Events
------

`tabs.onActivated`

当窗口活动标签改变时触发，注意当该消息触发时，标签地址可能没有被设置。

`tabs.onActiveChanged` (en-US) 
已弃用

**已过时：** 请使用 `tabs.onActivated` 代替。

`tabs.onAttached` (en-US)

当一个标签被附加到一个窗口时触发，因为他可能在窗口间移动。

`tabs.onCreated` (en-US)

当一个标签被创建时触发，注意当该事件触发时可能没有设置地址。

`tabs.onDetached` (en-US)

当一个标签脱离一个窗口时被触发。

`tabs.onHighlightChanged` (en-US) 
已弃用

**过时：** 请使用 `tabs.onHighlighted` (en-US) 代替。

`tabs.onHighlighted` (en-US)

当一个标签被高亮显示或是被选中时触发。

`tabs.onMoved` (en-US)

当一个标签在一个窗口内移动时被触发。

`tabs.onRemoved` (en-US)

当一个标签关闭时被触发。

`tabs.onReplaced` (en-US)

当一个标签因为预载取代另一个标签时被触发。

`tabs.onSelectionChanged` (en-US) 
已弃用

**以过时：** 请使用 `tabs.onActivated` 代替。

`tabs.onUpdated` (en-US)

当一个标签被更新时触发。

`tabs.onZoomChange` (en-US)

当一个标签被缩放时触发

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**备注：** The "Chrome incompatibilities" section is included from https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome\_incompatibilities using the WebExtChromeCompat macro.

If you need to update this content, edit https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome\_incompatibilities, then shift-refresh this page to see your changes.

Example extensions
------------------

* 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

**备注：** 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.