tabs

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.

이 API는 열려있는 탭의 목록을 얻는데, 다양한 기준으로 걸러내는데, 그리고 탭을 열고, 고치고, 옮기고, 다시 싣고, 없애는데 사용할 수 있다. 이 API로 탭에 열린 콘텐트를 직접 다룰 수는 없지만, tabs.executeScript()tabs.insertCSS() API로 탭에 자바스크립트와 CSS를 끼워 넣을 수는 있다.

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

특별한 권한없이 이 API의 대부분을 사용할 수 있지만:

 

  • Tab.url, Tab.title, and Tab.favIconUrl에 접근하려면 "tabs" 권한을 가져야 한다. 파이어폭스에서 이 말은 URL로 query 하는데도 "tabs"가 필요하다는 뜻이다.
  • tabs.executeScript()tabs.insertCSS()를 사용하려면 탭에 대한 host 권한을 가져야 한다.

 

또는 이런 권한을 일시적으로 얻는 방법도 있다. 현재 활성 탭이거나 명시적인 사용자 동작의 응답이라면 "activeTab" 권한을 요청하면 된다.

많은 탭 작업은 탭 ID를 사용한다. 탭 ID는 브라우저 세션 내에서 탭마다 고유하도록 보장된다. 브라우저가 다시 시작되면, 탭 ID를 재사용할 수 있고 그럴 것이다. 다시 시작하는 브라우저에 걸쳐서 탭에 정보를 연관시키려면 sessions.setTabValue()를 사용해라.

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 No support No
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 No support No
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
goBackChrome Full support 72Edge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
goForwardChrome Full support 72Edge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
hide
Non-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 Full support 63Opera 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
moveInSuccessionChrome No support NoEdge No support NoFirefox Full support 65Opera No support NoFirefox 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.

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.