이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.

Interact with the browser's tab system.

You can use this API to get a list of opened tabs, filtered by various criteria, and to open, update, move, reload, and remove tabs. You can't directly access the content hosted by tabs using this API, but you can insert JavaScript and CSS into tabs using the tabs.executeScript() or tabs.insertCSS() APIs.

You can use most of this API without any special permission. However:

Alternatively, you can get these permissions temporarily, only for the currently active tab and only in response to an explicit user action, by asking for the "activeTab" permission.

Types

tabs.MutedInfoReason
Specifies the reason a tab was muted or unmuted.
tabs.MutedInfo
This object contains a boolean indicating whether the tab is muted, and the reason for the last state change.
tabs.Tab
This type contains information about a tab.
tabs.TabStatus
Indicates whether the tab has finished loading.
tabs.WindowType
The type of window that hosts this tab.
tabs.ZoomSettingsMode
Defines whether zoom changes are handled by the browser, by the add-on, or are disabled.
tabs.ZoomSettingsScope
Defines whether zoom changes will persist for the page's origin, or only take effect in this tab.
tabs.ZoomSettings
Defines zoom settings modescope, and default zoom factor.

Properties

tabs.TAB_ID_NONE
A special ID value given to tabs that are not browser tabs (for example, tabs in devtools windows).

Functions

tabs.connect()
Sets up a messaging connection between the add-on's background scripts (or other privileged scripts, such as popup scripts or options page scripts) and any content scripts running in the specified tab.
tabs.create()
Creates a new tab.
tabs.captureVisibleTab()
Creates a data URI encoding an image of the visible area of the currently active tab in the specified window.
tabs.detectLanguage()
Detects the primary language of the content in a tab.
tabs.duplicate()
Duplicates a tab.
tabs.executeScript()
Injects JavaScript code into a page.
tabs.get()
Retrieves details about the specified tab.
tabs.getAllInWindow()
Gets details about all tabs in the specified window.
tabs.getCurrent()
Gets information about the tab that this script is running in, as a tabs.Tab object.
tabs.getSelected()
Gets the tab that is selected in the specified window.
tabs.getZoom()
Gets the current zoom factor of the specified tab.
tabs.getZoomSettings()
Gets the current zoom settings for the specified tab.
tabs.highlight()
Highlights one or more tabs.
tabs.insertCSS()
Injects CSS into a page.
tabs.removeCSS()
Removes from a page CSS which was previously injected by calling tabs.insertCSS().
tabs.move()
Moves one or more tabs to a new position in the same window or to a different window.
tabs.query()
Gets all tabs that have the specified properties, or all tabs if no properties are specified.
tabs.reload()
Reload a tab, optionally bypassing the local web cache.
tabs.remove()
Closes one or more tabs.
tabs.sendMessage()
Sends a single message to the content script(s) in the specified tab.
tabs.sendRequest()
Sends a single request to the content script(s) in the specified tab. Deprecated: use tabs.sendMessage() instead.
tabs.setZoom()
Zooms the specified tab.
tabs.setZoomSettings()
Sets the zoom settings for the specified tab.
tabs.update()
Navigate the tab to a new URL, or modify other properties of the tab.

Events

tabs.onActivated
Fires when the active tab in a window changes. Note that the tab's URL may not be set at the time this event fired.
tabs.onActiveChanged
Fires when the selected tab in a window changes. Deprecated: use tabs.onActivated instead.
tabs.onAttached
Fired when a tab is attached to a window, for example because it was moved between windows.
tabs.onCreated
Fired when a tab is created. Note that the tab's URL may not be set at the time this event fired.
tabs.onDetached
Fired when a tab is detached from a window, for example because it is being moved between windows.
tabs.onHighlightChanged
Fired when the highlighted or selected tabs in a window change. Deprecated: use tabs.onHighlighted instead.
tabs.onHighlighted
Fired when the highlighted or selected tabs in a window change.
tabs.onMoved
Fired when a tab is moved within a window.
tabs.onRemoved
Fired when a tab is closed.
tabs.onReplaced
Fired when a tab is replaced with another tab due to prerendering.
tabs.onSelectionChanged
Fires when the selected tab in a window changes. Deprecated: use tabs.onActivated instead.
tabs.onUpdated
Fired when a tab is updated.
tabs.onZoomChange
Fired when a tab is zoomed.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxOperaFirefox for Android
MutedInfoChrome Full support YesEdge No support NoFirefox Full support 47Opera Full support YesFirefox Android No support No
MutedInfoReasonChrome Full support YesEdge No support NoFirefox Full support 47Opera Full support YesFirefox Android No support No
PageSettingsChrome No support NoEdge No support NoFirefox Full support 56Opera No support NoFirefox Android No support No
TAB_ID_NONEChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
TabStatusChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
WindowTypeChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
ZoomSettingsChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
ZoomSettingsModeChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
ZoomSettingsScopeChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
captureTabChrome No support NoEdge No support NoFirefox Full support 59Opera No support NoFirefox Android Full support 59
captureVisibleTabChrome Full support Yes
Notes
Full support Yes
Notes
Notes The default file format is 'jpeg'.
Edge Full support 15Firefox Full support 47Opera Full support Yes
Notes
Full support Yes
Notes
Notes The default file format is 'jpeg'.
Firefox Android Full support 54
connectChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android Full support 54
createChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
detectLanguageChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android No support No
discardChrome Full support 54
Notes
Full support 54
Notes
Notes Only accepts a single tab ID as a parameter, not an array.
Notes The tab ID argument is optional: if it is omitted, the browser discards the least important tab.
Notes The callback is passed a Tab object representing the tab that was discarded.
Notes Tabs whose document contains a beforeunload listener that displays a prompt will be discarded.
Edge Full support 14Firefox Full support 58Opera Full support Yes
Notes
Full support Yes
Notes
Notes Only accepts a single tab ID as a parameter, not an array.
Notes The tab ID argument is optional: if it is omitted, the browser discards the least important tab.
Notes The callback is passed a Tab object representing the tab that was discarded.
Notes Tabs whose document contains a beforeunload listener that displays a prompt will be discarded.
Firefox Android No support No
duplicateChrome Full support YesEdge No support NoFirefox Full support 47Opera Full support YesFirefox Android Full support 54
executeScriptChrome Full support Yes
Notes
Full support Yes
Notes
Notes Extensions can't inject scripts into their own pages using this API.
Edge Full support 14Firefox Full support 43
Notes
Full support 43
Notes
Notes Before version 50, Firefox would pass a single result value into its callback rather than an array, unless 'allFrames' had been set.
Opera Full support Yes
Notes
Full support Yes
Notes
Notes Extensions can't inject scripts into their own pages using this API.
Firefox Android Full support 54
getChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
getAllInWindow
DeprecatedNon-standard
Chrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
getCurrentChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
getSelected
DeprecatedNon-standard
Chrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
getZoomChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
getZoomSettingsChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
hide
ExperimentalNon-standard
Chrome No support NoEdge No support NoFirefox Full support 61
Full support 61
No support 59 — 61
Disabled
Disabled From version 59 until version 61 (exclusive): this feature is behind the extensions.webextensions.tabhide.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera No support NoFirefox Android No support No
highlightChrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
insertCSSChrome Full support YesEdge Full support 14Firefox Full support 47Opera Full support YesFirefox Android Full support 54
moveChrome Full support YesEdge No support NoFirefox Full support 46Opera Full support YesFirefox Android No support No
onActivatedChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
onActiveChanged
DeprecatedNon-standard
Chrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
onAttachedChrome Full support YesEdge Full support 15Firefox Full support 45Opera Full support YesFirefox Android Full support 54
onCreatedChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
onDetachedChrome Full support YesEdge Full support 15Firefox Full support 45Opera Full support YesFirefox Android Full support 54
onHighlightChanged
DeprecatedNon-standard
Chrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
onHighlightedChrome Full support YesEdge No support NoFirefox Full support 63
Full support 63
No support 45 — 62
Notes
Notes Implemented as an alias for onActivated.
Opera No support NoFirefox Android Full support 54
Notes
Full support 54
Notes
Notes Implemented as an alias for onActivated.
onMovedChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
onRemovedChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
onReplacedChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
onSelectionChanged
DeprecatedNon-standard
Chrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
onUpdatedChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
onZoomChangeChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
printChrome No support NoEdge No support NoFirefox Full support 56Opera No support NoFirefox Android No support No
printPreviewChrome No support NoEdge No support NoFirefox Full support 56Opera No support NoFirefox Android No support No
queryChrome Full support YesEdge Full support 14
Notes
Full support 14
Notes
Notes The panel, app, devtools and popup values for WindowType are not supported.
Firefox Full support 45Opera Full support YesFirefox Android Full support 54
reloadChrome Full support YesEdge Full support 17Firefox Full support 45Opera Full support YesFirefox Android Full support 54
removeChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
removeCSSChrome No support NoEdge No support NoFirefox Full support 49Opera No support NoFirefox Android Full support 54
saveAsPDFChrome No support NoEdge No support NoFirefox Full support 56
Notes
Full support 56
Notes
Notes This function does not work on macOS.
Opera No support NoFirefox Android No support No
sendMessageChrome Full support YesEdge Full support 14
Notes
Full support 14
Notes
Notes No response is sent after the receiving tab is refreshed if there is no `runtime.onMessage` listener.
Firefox Full support 45Opera Full support YesFirefox Android Full support 54
sendRequest
DeprecatedNon-standard
Chrome Full support YesEdge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
setZoomChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android No support No
setZoomSettingsChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
show
ExperimentalNon-standard
Chrome No support NoEdge No support NoFirefox Full support 61
Full support 61
No support 59 — 61
Disabled
Disabled From version 59 until version 61 (exclusive): this feature is behind the extensions.webextensions.tabhide.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera No support NoFirefox Android No support No
toggleReaderModeChrome No support NoEdge No support NoFirefox Full support 58Opera No support NoFirefox Android No support No
updateChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

Edge incompatibilities

Promises are not supported in Edge. Use callbacks instead.

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.

문서 태그 및 공헌자

이 페이지의 공헌자: abbycar
최종 변경자: abbycar,