chrome.tabs
描述: |
使用 chrome.tabs API 与浏览器标签页交互。您可以使用该 API 创建、修改或重新排列浏览器中的标签页。
|
可用版本: |
从 Chrome 5 开始支持。
|
权限: |
大部分 chrome.tabs API 不需要任何权限就能使用。然而,
Tab 的
url 、title 和
favIconUrl
属性需要有 "tabs" 权限后才会给出。tabs.captureVisibleTab 需要
"<all_urls>" 或
"activeTab" 权限才能使用。
|
清单文件
您不需要在扩展程序的清单文件中声明任何权限就能使用
chrome.tabs
的大多数方法和事件。然而,如果您需要访问
tabs.Tab
的
url
、title
或 favIconUrl
属性,您必须在清单文件中声明 "tabs"
权限,如下所示:
{ "name": "我的扩展程序", ... "permissions": [ "tabs" ], ... }
例子
您可以在
examples/api/tabs
目录中找到一些使用 chrome.tabs
API
操纵标签页的简单例子。有关其他例子以及查看源代码的帮助,请参见示例
摘要
类型 | |
---|---|
Tab | |
InjectDetails | |
ZoomSettings | |
方法 | |
get −
chrome.tabs.get(integer tabId, function callback)
| |
getCurrent −
chrome.tabs.getCurrent(function callback)
| |
connect −
runtime.Port
chrome.tabs.connect(integer tabId, object connectInfo)
| |
sendRequest −
chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)
| |
sendMessage −
chrome.tabs.sendMessage(integer tabId, any message, function responseCallback)
| |
getSelected −
chrome.tabs.getSelected(integer windowId, function callback)
| |
getAllInWindow −
chrome.tabs.getAllInWindow(integer windowId, function callback)
| |
create −
chrome.tabs.create(object createProperties, function callback)
| |
duplicate −
chrome.tabs.duplicate(integer tabId, function callback)
| |
query −
chrome.tabs.query(object queryInfo, function callback)
| |
highlight −
chrome.tabs.highlight(object highlightInfo, function callback)
| |
update −
chrome.tabs.update(integer tabId, object updateProperties, function callback)
| |
move −
chrome.tabs.move(integer or array of integer tabIds, object moveProperties, function callback)
| |
reload −
chrome.tabs.reload(integer tabId, object reloadProperties, function callback)
| |
remove −
chrome.tabs.remove(integer or array of integer tabIds, function callback)
| |
detectLanguage −
chrome.tabs.detectLanguage(integer tabId, function callback)
| |
captureVisibleTab −
chrome.tabs.captureVisibleTab(integer windowId, types.ImageDetails options, function callback)
| |
executeScript −
chrome.tabs.executeScript(integer tabId, tabs.InjectDetails details, function callback)
| |
insertCSS −
chrome.tabs.insertCSS(integer tabId, tabs.InjectDetails details, function callback)
| |
setZoom −
chrome.tabs.setZoom(integer tabId, double zoomFactor, function callback)
| |
getZoom −
chrome.tabs.getZoom(integer tabId, function callback)
| |
setZoomSettings −
chrome.tabs.setZoomSettings(integer tabId, ZoomSettings zoomSettings, function callback)
| |
getZoomSettings −
chrome.tabs.getZoomSettings(integer tabId, function callback)
| |
事件 | |
onCreated | |
onUpdated | |
onMoved | |
onSelectionChanged | |
onActiveChanged | |
onActivated | |
onHighlightChanged | |
onHighlighted | |
onDetached | |
onAttached | |
onRemoved | |
onReplaced | |
onZoomChange |
类型
Tab
属性 | ||
---|---|---|
integer | id |
标签页的标识符。标签页的标识符在浏览器会话中唯一。在某些情况下,标签页可能没有标识符,例如使用 sessions API 查询外来标签页时,此时可能存在会话标识符。 |
integer | index |
标签页在所在窗口中的索引,从 0 开始。 |
integer | windowId |
标签页所在窗口的标识符。 |
integer | (可选) openerTabId |
从 Chrome 18 开始支持。 打开这一标签页的标签页标识符(如果存在的话),只有该标签页仍然存在时才会有这一属性。 |
boolean | selected |
从 Chrome 33 开始弃用。请使用 tabs.Tab.highlighted。 标签页是否选中。 |
boolean | highlighted |
从 Chrome 16 开始支持。 标签页是否高亮突出。 |
boolean | active |
从 Chrome 16 开始支持。 标签页是否是窗口中的活动标签页。(窗口不一定有焦点。) |
boolean | pinned |
从 Chrome 9 开始支持。 标签页是否固定。 |
string | (可选) url |
标签页中显示的 URL,只有当扩展程序拥有 "tabs" 权限时该属性才会存在。 |
string | (可选) title |
标签页的标题,只有当扩展程序拥有 "tabs" 权限时该属性才会存在,如果标签页正在加载它也可能是空字符串。 |
string | (可选) favIconUrl |
标签页的收藏夹图标 URL,只有当扩展程序拥有 "tabs" 权限时该属性才会存在,如果标签页正在加载它也可能是空字符串。 |
string | (可选) status |
"loading"(正在加载)或 "complete"(完成)。 |
boolean | incognito |
标签页是否在隐身窗口中。 |
integer | (可选) width |
从 Chrome 31 开始支持。 标签页宽度,以像素为单位。 |
integer | (可选) height |
从 Chrome 31 开始支持。 标签页高度,以像素为单位。 |
string | (可选) sessionId |
从 Chrome 31 开始支持。 会话标识符,用于唯一标识由 sessions API 获取的标签页。 |
InjectDetails
从 Chrome 22 开始支持。
属性 | ||
---|---|---|
string | (可选) code |
要插入的 JavaScript 或 CSS 代码。 |
string | (可选) file |
要插入的 JavaScript 或 CSS 文件。 |
boolean | (可选) allFrames |
如果 allFrames 为 |
boolean | (可选) matchAboutBlank |
从 Chrome 37 开始支持。警告:目前为 Beta 分支。了解更多内容
如果 matchAboutBlank 为 true,代码同时也会插入 about:blank 和 about:srcdoc 框架(如果您的扩展程序有权限访问所属文档)。不能在顶层 about: 框架中插入代码。默认情况下为 |
enum of "document_start" , "document_end" , or "document_idle" |
(可选) runAt |
JavaScript 或 CSS 插入标签页的最早时间,默认为 "document_idle"。 |
ZoomSettings
从 Chrome 38 开始支持。警告:目前为 Dev 分支。了解更多内容
属性 | ||
---|---|---|
enum of "automatic" , "manual" , or "disabled" |
(可选) mode |
定义缩放设置更改的处理方式,即哪一方负责网页的实际缩放,默认为
|
enum of "per-origin" , or "per-tab" |
(可选) scope |
定义缩放更改是根据网页来源保存,还是仅在当前标签页中生效。
|
方法
get
chrome.tabs.get(integer tabId, function callback)
getCurrent
chrome.tabs.getCurrent(function callback)
connect
runtime.Port
chrome.tabs.connect(integer tabId, object connectInfo)
连接到指定标签页中的内容脚本,这样当前扩展程序在指定标签页中运行的每一个内容脚本都会产生 runtime.onConnect 事件。有关更多详情,请参见内容脚本的消息传递。
参数 | |||||
---|---|---|---|---|---|
integer | tabId | ||||
object | (可选) connectInfo |
|
sendRequest
chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)
从 Chrome 33 开始弃用。请使用 runtime.sendMessage。
向指定标签页中的内容脚本发送一个消息,当发回响应时执行一个可选的回调函数。当前扩展程序在指定标签页中的每一个内容脚本都会收到 extension.onRequest 事件。
参数 | |||||
---|---|---|---|---|---|
integer | tabId | ||||
any | request | ||||
function | (可选) responseCallback |
如果您指定了 responseCallback 参数,它应该是一个如下形式的函数: function(any response) {...};
|
sendMessage
chrome.tabs.sendMessage(integer tabId, any message, function responseCallback)
从 Chrome 20 开始支持。
向指定标签页中的内容脚本发送一个消息,当发回响应时执行一个可选的回调函数。当前扩展程序在指定标签页中的每一个内容脚本都会收到 runtime.onMessage 事件。
参数 | |||||
---|---|---|---|---|---|
integer | tabId | ||||
any | message | ||||
function | (可选) responseCallback |
如果您指定了 responseCallback 参数,它应该是一个如下形式的函数: function(any response) {...};
|
getSelected
chrome.tabs.getSelected(integer windowId, function callback)
从 Chrome 33 开始弃用。请使用 tabs.query {active: true}
。
获取指定窗口中选定的标签页。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) windowId |
默认为当前窗口。 |
|||
function | callback |
callback 参数应该是一个如下形式的函数: function( Tab tab) {...};
|
getAllInWindow
chrome.tabs.getAllInWindow(integer windowId, function callback)
从 Chrome 33 开始弃用。请使用 tabs.query {windowId: windowId}
。
获取指定窗口中所有标签页的详情。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) windowId |
默认为当前窗口。 |
|||
function | callback |
callback 参数应该是一个如下形式的函数: function(array of Tab tabs) {...};
|
create
chrome.tabs.create(object createProperties, function callback)
创建一个新标签页。
参数 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
object | createProperties |
|
|||||||||||||||||||||
function | (可选) callback |
如果您指定了 callback 参数,它应该是一个如下形式的函数: function( Tab tab) {...};
|
duplicate
chrome.tabs.duplicate(integer tabId, function callback)
query
chrome.tabs.query(object queryInfo, function callback)
从 Chrome 16 开始支持。
获取具有指定属性的所有标签页,如果没有指定任何属性的话则获取所有标签页。
参数 | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
object | queryInfo |
|
|||||||||||||||||||||||||||||||||
function | callback |
callback 参数应该是一个如下形式的函数: function(array of Tab result) {...};
|
highlight
chrome.tabs.highlight(object highlightInfo, function callback)
从 Chrome 16 开始支持。
高亮突出指定标签页。
参数 | ||||||||
---|---|---|---|---|---|---|---|---|
object | highlightInfo |
|
||||||
function | callback |
callback 参数应该是一个如下形式的函数: function( windows.Window window) {...};
|
update
chrome.tabs.update(integer tabId, object updateProperties, function callback)
修改标签页属性,updateProperties 中未指定的属性保持不变。
参数 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
integer | (可选) tabId |
默认为当前窗口的选定标签页。 |
||||||||||||||||||
object | updateProperties |
|
||||||||||||||||||
function | (可选) callback |
如果您指定了 callback 参数,它应该是一个如下形式的函数: function( Tab tab) {...};
|
move
chrome.tabs.move(integer or array of integer tabIds, object moveProperties, function callback)
将一个或多个标签页移动至所在窗口中的新位置,或者移动到新窗口中。注意,标签页只能在普通窗口(window.type === "normal")间移动。
参数 | ||||||||
---|---|---|---|---|---|---|---|---|
integer or array of integer | tabIds |
从 Chrome 16 开始支持。 要移动的标签页或标签页列表。 |
||||||
object | moveProperties |
|
||||||
function | (可选) callback |
如果您指定了 callback 参数,它应该是一个如下形式的函数: function( Tab or array of Tab tabs) {...};
|
reload
chrome.tabs.reload(integer tabId, object reloadProperties, function callback)
从 Chrome 16 开始支持。
重新加载标签页。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) tabId |
要重新加载的标签页标识符,默认为当前窗口的选定标签页。 |
|||
object | (可选) reloadProperties |
|
|||
function | (可选) callback |
如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
remove
chrome.tabs.remove(integer or array of integer tabIds, function callback)
关闭一个或多个标签页。
参数 | ||
---|---|---|
integer or array of integer | tabIds |
从 Chrome 16 开始支持。 要关闭的标签页或标签页列表。 |
function | (可选) callback |
如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
detectLanguage
chrome.tabs.detectLanguage(integer tabId, function callback)
检测某个标签页中内容的主要语言。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) tabId |
默认为当前窗口的活动标签页。 |
|||
function | callback |
callback 参数应该是一个如下形式的函数: function(string language) {...};
|
captureVisibleTab
chrome.tabs.captureVisibleTab(integer windowId, types.ImageDetails options, function callback)
捕捉指定窗口中当前活动标签页的可见区域,您必须拥有 "<all_urls>" 或当前活动标签页的 "activeTab" 权限才能使用该方法。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) windowId |
目标窗口,默认为当前窗口。 |
|||
types.ImageDetails | (可选) options |
||||
function | callback |
callback 参数应该是一个如下形式的函数: function(string dataUrl) {...};
|
executeScript
chrome.tabs.executeScript(integer tabId, tabs.InjectDetails details, function callback)
在页面中插入 JavaScript 代码。有关更多详情,请参节内容脚本文档中以编程方式插入部分。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) tabId |
运行脚本的标签页标识符,默认为当前窗口的活动标签页。 |
|||
tabs.InjectDetails | details |
需要运行的脚本详情。 |
|||
function | (可选) callback |
在所有 JavaScript 代码执行完后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function(array of any result) {...};
|
insertCSS
chrome.tabs.insertCSS(integer tabId, tabs.InjectDetails details, function callback)
向一个页面中插入CSS。有关更多详情,请参节内容脚本文档中以编程方式插入部分。
参数 | ||
---|---|---|
integer | (可选) tabId |
要插入CSS的标签页标识符,默认为当前窗口的活动标签页。 |
tabs.InjectDetails | details |
要插入的CSS文本详情。 |
function | (可选) callback |
当所有CSS都已经被插入后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
setZoom
chrome.tabs.setZoom(integer tabId, double zoomFactor, function callback)
getZoom
chrome.tabs.getZoom(integer tabId, function callback)
setZoomSettings
chrome.tabs.setZoomSettings(integer tabId, ZoomSettings zoomSettings, function callback)
仅用于 Dev 分支。了解更多内容
设置指定标签页的缩放选项,定义缩放更改的处理方式。标签页导航时重置这些设置。
参数 | ||
---|---|---|
integer | (可选) tabId |
从 Chrome 38 开始支持。警告:目前为 Dev 分支。了解更多内容 要更改缩放设置的标签页标识符,默认为当前窗口的活动标签页。 |
ZoomSettings | zoomSettings |
从 Chrome 38 开始支持。警告:目前为 Dev 分支。了解更多内容 定义缩放更改的处理方式与范围。 |
function | callback |
缩放设置更改后调用。 callback 参数应该是一个如下形式的函数: function() {...};
|
getZoomSettings
chrome.tabs.getZoomSettings(integer tabId, function callback)
仅用于 Dev 分支。了解更多内容
获取指定标签页目前的缩放设置。
参数 | |||||
---|---|---|---|---|---|
integer | (可选) tabId |
从 Chrome 38 开始支持。警告:目前为 Dev 分支。了解更多内容 要获取当前缩放设置的标签页标识符,默认为当前窗口的活动标签页。 |
|||
function | callback |
调用时传递标签页目前的缩放设置。 callback 参数应该是一个如下形式的函数: function( ZoomSettings zoomSettings) {...};
|
事件
onCreated
onUpdated
当标签页更新时产生。
addListener
chrome.tabs.onUpdated.addListener(function callback)
参数 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object changeInfo, Tab tab) {...};
|
onMoved
当标签页在窗口中移动时产生。仅产生一次移动事件,代表用户的直接移动,其他标签页因此而随之移动并不产生此事件。当标签页在窗口间移动时不产生此事件,在这种情况下,请参见 tabs.onDetached。
addListener
chrome.tabs.onMoved.addListener(function callback)
参数 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object moveInfo) {...};
|
onSelectionChanged
从 Chrome 33 开始弃用。请使用 tabs.onActivated。
窗口中的选定标签页更改时产生。
addListener
chrome.tabs.onSelectionChanged.addListener(function callback)
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object selectInfo) {...};
|
onActiveChanged
从 Chrome 33 开始弃用。请使用 tabs.onActivated。
窗口中的选定标签页更改时产生。注意,该事件产生时标签页的 URL 可能还没有设置,但是您可以监听 onUpdated 事件,当 URL 设置时收到通知。
addListener
chrome.tabs.onActiveChanged.addListener(function callback)
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object selectInfo) {...};
|
onActivated
从 Chrome 18 开始支持。
当窗口中的当前标签页更改时产生。注意,当该事件发生时标签页的 URL 可能还没有设置,但是您可以处理 onUpdated 事件,在设置 URL 时收到通知。
addListener
chrome.tabs.onActivated.addListener(function callback)
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object activeInfo) {...};
|
onHighlightChanged
从 Chrome 33 开始弃用。请使用 tabs.onHighlighted。
窗口中高亮或选定标签页更改时产生。
addListener
chrome.tabs.onHighlightChanged.addListener(function callback)
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object selectInfo) {...};
|
onHighlighted
从 Chrome 18 开始支持。
当窗口中的高亮或选定标签页更改时产生。
addListener
chrome.tabs.onHighlighted.addListener(function callback)
参数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object highlightInfo) {...};
|
onDetached
当标签页从一个窗口中脱离时产生,例如当它在窗口间移动时。
addListener
chrome.tabs.onDetached.addListener(function callback)
参数 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object detachInfo) {...};
|
onAttached
当标签页附加到一个窗口时产生,例如当它在窗口间移动时。
addListener
chrome.tabs.onAttached.addListener(function callback)
参数 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object attachInfo) {...};
|
onRemoved
当标签页关闭时产生。
addListener
chrome.tabs.onRemoved.addListener(function callback)
参数 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer tabId, object removeInfo) {...};
|
onReplaced
从 Chrome 26 开始支持。
当标签页由于预呈现或即搜即得而被另一个标签页替换时产生。
addListener
chrome.tabs.onReplaced.addListener(function callback)
参数 | ||||||||
---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(integer addedTabId, integer removedTabId) {...};
|
onZoomChange
从 Chrome 38 开始支持。警告:目前为 Dev 分支。了解更多内容
标签页缩放时产生。
addListener
chrome.tabs.onZoomChange.addListener(function callback)
参数 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object ZoomChangeInfo) {...};
|
示例扩展程序
- My Bookmarks – A browser action with a popup dump of all bookmarks, including search, add, edit and delete.
- Page Redder – Make the current page red
- Print this page – Adds a print button to the browser.
- A browser action with a popup that changes the page color – Change the current page color
- Content settings – Shows the content settings for the current site.
- Cookie API Test Extension – Testing Cookie API
- Broken Links – Extends the Developer Tools, adding an audit category that finds broken links on the inspected page.
- FirePHP for Chrome – Extends the Developer Tools, adding support for parsing FirePHP messages from server
- Download Selected Links – Select links on a page and download them.
- Download Manager Button – Browser Action Download Manager User Interface for Google Chrome
- Event Page Example – Demonstrates usage and features of the event page
- Typed URL History – Reads your history, and shows the top ten pages you go to by typing the URL.
- CLD – Displays the language of a tab
- Message Timer – Times how long it takes to send a message to a content script and back.
- Animated Page Action – This extension adds an animated browser action to the toolbar.
- Top Chrome Extension Questions – Sample demonstration of the optional permissions API.
- Show Tabs in Process – Adds a browser action showing which tabs share the current tab's process.
- Stylizr – Spruce up your pages with custom CSS.
- Tab Inspector – Utility for working with the extension tabs api
- Keyboard Pin – Creates a keyboard shortcut (Alt + Shift + P) to toggle the pinned state of the currently selected tab
- Test Screenshot Extension – Demonstrate screenshot functionality in the chrome.tabs api. Note: only works for code.google.com
- Top Sites – Shows the top sites in a browser action
- Merge Windows – Merges all of the browser's windows into the current window
- App Launcher – Get access to your apps in a browser action
- Google Calendar Checker(由 Google 提供) – 快速查看离您的任意日历中下一次会议还有多长时间。您只需点击该按钮即可进入自己的日历。
- Chromium Search – Add support to the omnibox to search the Chromium source code.
- Email this page (by Google) – This extension adds an email button to the toolbar which allows you to email the page link using your default mail client or Gmail.
- Chrome Sounds – Enjoy a more magical and immersive experience when browsing the web using the power of sound.
- Google Document List Viewer – Demonstrates how to use OAuth to connect the Google Documents List Data API.
- Google Mail Checker – 显示 Google Mail 收件箱中的未读邮件数。点击该按钮还可以打开您的收件箱。
- Imageinfo – Get image info for images, including EXIF data
- Mappy – Finds addresses in the web page you're on and pops up a map window.
- News Reader (by Google) – Displays the latest stories from Google News in a popup.
- News Reader – Displays the first 5 items from the 'Google News - top news' RSS feed in a popup.
- Sample - OAuth Contacts – Uses OAuth to connect to Google's contacts service and display a list of your contacts.
- Speak Selection – Speaks the current selection out loud.
- Tab Shortcuts – Allows pinning and duplication of tabs via keyboard shortcuts.