chrome.tabs
Description
使用 chrome.tabs
API 与浏览器的标签系统交互。您可以使用此 API 在浏览器中创建、修改和重新排列选项卡。
# Manifest
您可以使用大多数 chrome.tabs 方法和事件,而无需在扩展的清单manifest文件中声明任何权限。但是,如果您需要访问 tabs.Tab的
url、
pendingUrl、
title或
favIconUrl` 属性,则必须在清单中声明“tabs”权限,如下所示:
{
"name": "My extension",
...
"permissions": [
"tabs"
],
...
}
# Examples
以下部分演示了 chrome.tabs API 的几个常见用例。
# Opening an extension page in a new tab(在新标签页中打开扩展页面)
扩展的常见模式是在安装扩展时在新选项卡中打开入门页面。以下示例显示了如何执行此操作。
内容脚本不能使用
chrome.tabs.create()
。
//// background.js
chrome.runtime.onInstalled.addListener((reason) => {
if (reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.tabs.create({
url: 'onboarding.html'
});
}
});
# Get the current tab(获取当前标签)
此示例演示后台脚本如何检索当前聚焦的选项卡。
由于使用了 Promises,此示例需要 Manifest V3。此外,内容脚本不能使用
tabs.query
。
//// background.js
async function getCurrentTab() {
let queryOptions = { active: true, currentWindow: true };
let [tab] = await chrome.tabs.query(queryOptions);
return tab;
}
# Mute the specified tab(静音指定的选项卡)
由于使用了 Promise,需要 Manifest V3。内容脚本不能使用
tabs.get
或tabs.update
。
//// background.js
function toggleMuteState(tabId) {
chrome.tabs.get(tabId, async (tab) => {
let muted = !tab.mutedInfo.muted;
await chrome.tabs.update(tabId, { muted });
console.log(`Tab ${tab.id} is ${ muted ? 'muted' : 'unmuted' }`);
});
}
# Move the current tab to the first position when clicked(单击时将当前选项卡移动到第一个位置)
此示例显示如何在拖动过程中或不进行时移动选项卡。
由于使用了
Promises
和chrome.tabs.onActivated()
,需要 Manifest V3,替换chrome.tabs.onSelectionChanged()
。在Promise
上下文中使用catch(error)
是一种确保不会未检查否则会填充chrome.runtime.lastError
的错误的方法。本示例中使用了chrome.tabs.move
,但相同的等待模式可用于在拖动过程中修改选项卡的其他调用。
//// background.js
chrome.tabs.onActivated.addListener(activeInfo => move(activeInfo));
async function move(activeInfo) {
try {
await chrome.tabs.move(activeInfo.tabId, {index: 0});
console.log('Success.');
} catch (error) {
if (error == 'Error: Tabs cannot be edited right now (user may be dragging a tab).') {
setTimeout(() => move(activeInfo), 50);
}
}
}
# More samples(更多)
有关演示 Tabs API 的更多示例,请参阅 chrome-extensions-samples 存储库的 mv2-archive/api/tabs 目录。
Summary
Types
Properties
Methods
Events
Types
MutedInfo
Chrome 46+
选项卡的静音状态以及上次状态更改的原因。
PROPERTIES
extensionId
string optional
更改静音状态的扩展程序的 ID。如果扩展不是静音状态上次更改的原因,则不设置。
muted
boolean
选项卡是否静音(防止播放声音)。即使该选项卡尚未播放或当前未播放声音,它也可能被静音。相当于是否显示“静音”音频指示器。
reason
MutedInfoReason optional
选项卡静音或取消静音的原因。如果选项卡的静音状态从未改变,则不设置。
MutedInfoReason
Chrome 46+
导致静音状态更改的事件。
TYPE
"user", "capture", or "extension"
Tab
PROPERTIES
active
boolean
选项卡在其窗口中是否处于活动状态。不一定意味着窗口已聚焦。
audible
boolean optional
Chrome 45+
该选项卡在过去几秒钟内是否发出声音(但如果也静音,则可能听不到)。相当于是否显示“扬声器音频”指示器。
autoDiscardable
boolean
Chrome 54+
资源不足时浏览器是否可以自动丢弃标签页。
discarded
boolean
Chrome 54+
标签是否被丢弃。丢弃的选项卡是指其内容已从内存中卸载但在选项卡条中仍可见的选项卡。下次激活时会重新加载其内容。
favIconUrl
string optional
选项卡图标的 URL。此属性仅在扩展程序的清单包含“tabs”权限时才存在。如果选项卡正在加载,它也可能是一个空字符串。
groupId
number
Chrome 88+
选项卡所属的组的 ID。
height
number optional
选项卡的高度(以像素为单位)。
highlighted
boolean
该选项卡是否突出显示。
id
number optional
选项卡的 ID。标签 ID 在浏览器会话中是唯一的。在某些情况下,可能不会为选项卡分配 ID;例如,当使用会话 API 查询外部选项卡时,在这种情况下可能会出现会话
session
ID。对于应用程序和开发工具窗口,标签 ID 也可以设置为chrome.tabs.TAB_ID_NONE
。incognito
boolean
选项卡是否在隐身窗口中。
index
number
选项卡在其窗口中的从零开始的索引。
mutedInfo
MutedInfo optional
Chrome 46+
选项卡的静音状态以及上次状态更改的原因。
openerTabId
number optional
打开此选项卡的选项卡的 ID(如果有)。此属性仅在 opener 选项卡仍然存在时才存在。
pendingUrl
string optional
Chrome 79+
选项卡在提交之前导航到的 URL。此属性仅在扩展程序的清单包含“选项卡”权限并且存在挂起导航时才存在。
pinned
boolean
选项卡是否固定。
selected
boolean
Deprecated
Please use
tabs.Tab.highlighted
.选项卡是否被选中。
sessionId
string optional
用于唯一标识从会话 API 获取的选项卡的会话
sessions
ID。status
TabStatus optional
选项卡的加载状态。
title
string optional
选项卡的标题。此属性仅在扩展程序的清单包含“tabs”权限时才存在。
url
string optional
选项卡主框架的最后提交 URL。此属性仅在扩展程序的清单包含“
tabs
”权限时才存在,如果选项卡尚未提交,则该属性可能为空字符串。另请参阅Tab.pendingUrl
。width
number optional
选项卡的宽度(以像素为单位)。
windowId
number
包含选项卡的窗口的 ID。
TabStatus
Chrome 44+
选项卡的加载状态。
TYPE
"unloaded", "loading", or "complete"
WindowType
Chrome 44+
窗口的类型。
TYPE
"normal", "popup", "panel", "app", or "devtools"
ZoomSettings
定义如何处理选项卡中的缩放更改以及在什么范围内。
PROPERTIES
defaultZoomFactor
number optional
Chrome 43+
用于在调用
tabs.getZoomSettings
时返回当前选项卡的默认缩放级别。mode
ZoomSettingsMode optional
定义如何处理缩放更改,即哪个实体负责页面的实际缩放;默认为自动
automatic
。scope
ZoomSettingsScope optional
定义缩放更改是保留页面原点,还是仅在此选项卡中生效;在自动
automatic
模式下默认为per-origin
,否则为per-tab
。
ZoomSettingsMode
Chrome 44+
定义如何处理缩放更改,即哪个实体负责页面的实际缩放;默认为自动automatic
。
TYPE
"automatic", "manual", or "disabled"
ZoomSettingsScope
Chrome 44+
定义缩放更改是保留页面原点,还是仅在此选项卡中生效;在自动模式(automatic
)下默认为 per-origin
,否则为 per-tab
。
TYPE
"per-origin", or "per-tab"
Properties
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
Chrome 92+
每秒可以调用 captureVisibleTab
的最大次数。captureVisibleTab
很昂贵,不应过于频繁地调用。
VALUE
2
TAB_ID_NONE
Chrome 46+
表示缺少浏览器选项卡的 ID。
VALUE
-1
Methods
captureVisibleTab
chrome.tabs.captureVisibleTab( windowId?: number, options?: ImageDetails, callback?: function, )
Promise
捕获指定窗口中当前活动选项卡的可见区域。要调用此方法,扩展程序必须具有
PARAMETERS
windowId
number optional
目标窗口。默认为当前窗口current window。
options
ImageDetails optional
callback
function optional
The
callback
parameter looks like:(dataUrl: string) => void
dataUrl
string
对捕获的选项卡的可见区域的图像进行编码的数据 URL。可以分配给 HTML
img
元素的 'src' 属性以进行显示。
RETURNS
Promise<string>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
connect
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
)
连接到指定选项卡中的内容脚本。在当前扩展的指定选项卡中运行的每个内容脚本中都会触发 runtime.onConnect
事件。有关更多详细信息,请参阅内容脚本消息传递Content Script Messaging。
PARAMETERS
tabId
number
connectInfo
object optional
frameId
number optional
打开由
frameId
标识的特定框架frame的端口,而不是选项卡中的所有框架。name
string optional
传递到 onConnect 用于侦听连接事件的内容脚本。
RETURNS
可用于与在指定选项卡中运行的内容脚本进行通信的端口。如果选项卡关闭或不存在,则会触发端口的
runtime.Port
事件。
create
chrome.tabs.create( createProperties: object, callback?: function, )
Promise
创建一个新选项卡。
PARAMETERS
createProperties
object
active
boolean optional
该选项卡是否应成为窗口中的活动选项卡。不影响窗口是否聚焦(参见
windows.update
)。默认为true。index
number optional
选项卡在窗口中应占据的位置。提供的值被限制在零和窗口中的选项卡数量之间。
openerTabId
number optional
打开此选项卡的选项卡的 ID。如果指定,opener 选项卡必须与新创建的选项卡位于同一窗口中。
pinned
boolean optional
是否应固定选项卡。默认为false。
selected
boolean optional
Deprecated
Please use active.
该选项卡是否应成为窗口中的选定选项卡。默认为true;
url
string optional
最初将选项卡导航到的 URL。完全限定的 URL 必须包含一个方案(即“
http://www.google.com
”,而不是“www.google.com
”)。相对 URL 相对于扩展程序中的当前页面。默认为新标签页。windowId
number optional
在其中创建新选项卡的窗口。默认为当前窗口current window。
RETURNS
Promise<Tab>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
detectLanguage
chrome.tabs.detectLanguage(
tabId?: number,
callback?: function,
)
Promise
检测选项卡中内容的主要语言。
PARAMETERS
tabId
number optional
默认为当前窗口current window的活动选项卡。
callback
function optional
The
callback
parameter looks like:(language: string) => void
language
string
ISO 语言代码,例如
en
或fr
。有关此方法支持的语言的完整列表,请参阅 kLanguageInfoTable。检查第二到第四列,返回第一个非NULL值,除了简体中文返回zh-CN
。对于未知/未定义的语言,返回und
。
RETURNS
Promise<string>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
discard
chrome.tabs.discard(
tabId?: number,
callback?: function,
)
Promise
Chrome 54+
从内存中丢弃一个选项卡。丢弃的标签在标签条上仍然可见,并在激活时重新加载。
PARAMETERS
tabId
number optional
要丢弃的选项卡的 ID。如果指定,选项卡将被丢弃,除非它处于活动状态或已被丢弃。如果省略,浏览器会丢弃最不重要的选项卡。如果不存在可丢弃的选项卡,这可能会失败。
callback
function optional
The
callback
parameter looks like:(tab?: Tab) => void
tab
Tab optional
丢弃的选项卡,如果成功丢弃;否则未定义。
RETURNS
Promise<Tab | undefined>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
duplicate
chrome.tabs.duplicate(
tabId: number,
callback?: function,
)
Promise
复制选项卡。
PARAMETERS
tabId
number
要复制的选项卡的 ID。
callback
function optional
The
callback
parameter looks like:(tab?: Tab) => void
RETURNS
Promise<Tab | undefined>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
executeScript
chrome.tabs.executeScript( tabId?: number, details: InjectDetails, callback?: function, )
Promise
≤MV2
Deprecated since Chrome 91
在 Manifest V3 中被 scripting.executeScript
替换。
将 JavaScript 代码注入页面。有关详细信息,请参阅内容脚本文档的程序化注入programmatic injection部分。
PARAMETERS
tabId
number optional
在其中运行脚本的选项卡的 ID;默认为当前窗口的活动选项卡。
details
要运行的脚本的详细信息。必须设置代码或文件属性,但不能同时设置两者。
callback
function optional
The
callback
parameter looks like:(result?: any[]) => void
result
any[] optional
每个注入帧中的脚本结果。
RETURNS
Promise<any[] | undefined>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
get
chrome.tabs.get(
tabId: number,
callback?: function,
)
Promise
检索有关指定选项卡的详细信息。
PARAMETERS
RETURNS
Promise<Tab>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getAllInWindow
chrome.tabs.getAllInWindow(
windowId?: number,
callback?: function,
)
Promise
≤MV2
Deprecated
Please use tabs.query
{windowId: windowId}
.
获取有关指定窗口中所有选项卡的详细信息
PARAMETERS
windowId
number optional
默认为当前窗口current window。
callback
function optional
The
callback
parameter looks like:(tabs: Tab[]) => void
tabs
Tab[]
RETURNS
Promise<Tab[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getCurrent
chrome.tabs.getCurrent(
callback?: function,
)
Promise
获取进行此脚本调用的选项卡。如果从非选项卡上下文(例如,背景页面或弹出视图)调用,则可能未定义。
PARAMETERS
RETURNS
Promise<Tab | undefined>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getSelected
chrome.tabs.getSelected(
windowId?: number,
callback?: function,
)
Promise
≤MV2
Deprecated
Please use tabs.query
{active: true}
.
获取在指定窗口中选择的选项卡。
PARAMETERS
windowId
number optional
默认为当前窗口current window。
callback
function optional
The
callback
parameter looks like:(tab: Tab) => void
tab
RETURNS
Promise<Tab>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getZoom
chrome.tabs.getZoom(
tabId?: number,
callback?: function,
)
Promise
获取指定选项卡的当前缩放系数。
PARAMETERS
tabId
number optional
从中获取当前缩放系数的选项卡的 ID;默认为当前窗口的活动选项卡。
callback
function optional
The
callback
parameter looks like:(zoomFactor: number) => void
zoomFactor
number
选项卡的当前缩放系数。
RETURNS
Promise<number>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getZoomSettings
chrome.tabs.getZoomSettings(
tabId?: number,
callback?: function,
)
Promise
获取指定选项卡的当前缩放设置。
PARAMETERS
tabId
number optional
从中获取当前缩放设置的选项卡的 ID;默认为当前窗口的活动选项卡。
callback
function optional
The
callback
parameter looks like:(zoomSettings: ZoomSettings) => void
zoomSettings
选项卡的当前缩放设置。
RETURNS
Promise<ZoomSettings>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
goBack
chrome.tabs.goBack(
tabId?: number,
callback?: function,
)
Promise
Chrome 72+
如果有,请返回上一页。
PARAMETERS
tabId
number optional
要返回的选项卡的 ID;默认为当前窗口的选定选项卡。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
goForward
chrome.tabs.goForward(
tabId?: number,
callback?: function,
)
Promise
Chrome 72+
前进到下一页,如果有的话。
PARAMETERS
tabId
number optional
要向前导航的选项卡的 ID;默认为当前窗口的选定选项卡。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
group
chrome.tabs.group(
options: object,
callback?: function,
)
Promise
Chrome 88+
将一个或多个选项卡添加到指定的组,或者如果未指定组,则将给定的选项卡添加到新创建的组。
PARAMETERS
options
object
createProperties
object optional
用于创建组的配置。如果已经指定了 groupId,则不能使用。
windowId
number optional
新组的窗口。默认为当前窗口。
groupId
number optional
要将选项卡添加到的组的 ID。如果未指定,将创建一个新组。
tabIds
number | [number, ...number[]]
要添加到指定组的选项卡 ID 或选项卡 ID 列表。
callback
function optional
The
callback
parameter looks like:(groupId: number) => void
groupId
number
添加选项卡的组的 ID。
RETURNS
Promise<number>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
highlight
chrome.tabs.highlight(
highlightInfo: object,
callback?: function,
)
Promise
突出显示给定的选项卡并关注组中的第一个。如果指定的选项卡当前处于活动状态,则似乎什么都不做。
PARAMETERS
highlightInfo
object
tabs
number | number[]
要突出显示的一个或多个标签索引。
windowId
number optional
包含选项卡的窗口。
callback
function optional
The
callback
parameter looks like:(window: Window) => void
window
包含有关其选项卡突出显示的窗口的详细信息。
RETURNS
Promise<windows.Window>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
insertCSS
chrome.tabs.insertCSS( tabId?: number, details: InjectDetails, callback?: function, )
Promise
≤MV2
Deprecated since Chrome 91
Replaced by scripting.insertCSS
in Manifest V3.
将 CSS 注入页面。使用此方法插入的样式可以使用 scripting.removeCSS
删除。有关详细信息,请参阅内容脚本文档的程序化注入programmatic injection部分。
PARAMETERS
tabId
number optional
要插入 CSS 的选项卡的 ID;默认为当前窗口的活动选项卡。
details
要插入的 CSS 文本的详细信息。必须设置代码或文件属性,但不能同时设置两者。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
move
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
callback?: function,
)
Promise
将一个或多个选项卡移动到其窗口内的新位置,或移动到新窗口。请注意,选项卡只能移入和移出普通 (window.type === "normal") 窗口。
PARAMETERS
tabIds
number | number[]
要移动的选项卡 ID 或选项卡 ID 列表。
moveProperties
object
index
number
将窗口移动到的位置。使用
-1
将选项卡放在窗口的末尾。windowId
number optional
默认为选项卡当前所在的窗口。
callback
function optional
The
callback
parameter looks like:
RETURNS
query
chrome.tabs.query(
queryInfo: object,
callback?: function,
)
Promise
获取具有指定属性的所有选项卡,如果未指定属性,则获取所有选项卡。
PARAMETERS
queryInfo
object
active
boolean optional
选项卡在其窗口中是否处于活动状态。
audible
boolean optional
Chrome 45+
是否可以听到选项卡。
autoDiscardable
boolean optional
Chrome 54+
资源不足时浏览器是否可以自动丢弃标签页。
currentWindow
boolean optional
选项卡是否在当前窗口中current window。
discarded
boolean optional
Chrome 54+
标签是否被丢弃。丢弃的选项卡是指其内容已从内存中卸载但在选项卡条中仍可见的选项卡。下次激活时会重新加载其内容。
groupId
number optional
Chrome 88+
选项卡所在组的 ID,或
tabGroups.TAB_GROUP_ID_NONE
用于未分组的选项卡。highlighted
boolean optional
选项卡是否突出显示。
index
number optional
选项卡在其窗口中的位置。
lastFocusedWindow
boolean optional
选项卡是否在最后一个聚焦窗口中。
muted
boolean optional
Chrome 45+
选项卡是否静音。
pinned
boolean optional
标签是否固定。
status
TabStatus optional
选项卡加载状态。
title
string optional
将页面标题与模式匹配。如果扩展没有“
tabs
”权限,则忽略此属性。url
string | string[] optional
根据一个或多个 URL 模式匹配URL patterns选项卡。片段标识符不匹配。如果扩展没有“
tabs
”权限,则忽略此属性。windowId
number optional
父窗口的 ID,或当前窗口current window的
windows.WINDOW_ID_CURRENT
。windowType
WindowType optional
选项卡所在的窗口类型。
RETURNS
Promise<Tab[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
reload
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
callback?: function,
)
Promise
重新加载选项卡。
PARAMETERS
tabId
number optional
要重新加载的选项卡的 ID;默认为当前窗口的选定选项卡。
reloadProperties
object optional
bypassCache
boolean optional
是否绕过本地缓存。默认为false。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
remove
chrome.tabs.remove(
tabIds: number | number[],
callback?: function,
)
Promise
关闭一个或多个选项卡。
PARAMETERS
tabIds
number | number[]
要关闭的选项卡 ID 或选项卡 ID 列表。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
removeCSS
chrome.tabs.removeCSS( tabId?: number, details: DeleteInjectionDetails, callback?: function, )
Promise
Chrome 87+
≤MV2
Deprecated since Chrome 91
Replaced by scripting.removeCSS
in Manifest V3.
从页面中删除之前通过调用 scripting.insertCSS
注入的 CSS。
PARAMETERS
tabId
number optional
要从中删除 CSS 的选项卡的 ID;默认为当前窗口的活动选项卡。
details
要删除的 CSS 文本的详细信息。必须设置代码或文件属性,但不能同时设置两者。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
sendMessage
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
responseCallback?: function,
)
向指定选项卡中的内容脚本发送一条消息,并在发回响应时运行可选的回调。在当前扩展的指定选项卡中运行的每个内容脚本中都会触发 runtime.onMessage
事件。
PARAMETERS
tabId
number
message
any
要发送的消息。此消息应该是一个 JSON-ifiable 对象。
options
object optional
frameId
number optional
将消息发送到由
frameId
标识的特定框架frame,而不是选项卡中的所有框架。
responseCallback
function optional
The
responseCallback
parameter looks like:(response: any) => void
response
any
消息处理程序发送的 JSON 响应对象。如果在连接到指定选项卡时发生错误,则不带参数调用回调并将
runtime.lastError
设置为错误消息。
sendRequest
chrome.tabs.sendRequest(
tabId: number,
request: any,
responseCallback?: function,
)
≤MV2
Deprecated
Please use runtime.sendMessage
.
向指定选项卡中的内容脚本发送单个请求,并在发回响应时运行可选的回调。在当前扩展的指定选项卡中运行的每个内容脚本中都会触发 extension.onRequest
事件。
PARAMETERS
tabId
number
request
any
responseCallback
function optional
The
responseCallback
parameter looks like:(response: any) => void
response
any
请求处理程序发送的 JSON 响应对象。如果在连接到指定选项卡时发生错误,则不带参数调用回调并将
runtime.lastError
设置为错误消息。
setZoom
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
callback?: function,
)
Promise
缩放指定的选项卡。
PARAMETERS
tabId
number optional
要缩放的选项卡的 ID;默认为当前窗口的活动选项卡。
zoomFactor
number
新的缩放系数。值
0
将选项卡设置为其当前的默认缩放系数。大于0
的值指定选项卡的(可能是非默认的)缩放系数。callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
setZoomSettings
chrome.tabs.setZoomSettings( tabId?: number, zoomSettings: ZoomSettings, callback?: function, )
Promise
设置指定选项卡的缩放设置,定义如何处理缩放更改。导航选项卡时,这些设置将重置为默认值。
PARAMETERS
tabId
number optional
要更改缩放设置的选项卡的 ID;默认为当前窗口的活动选项卡。
zoomSettings
定义如何处理缩放更改以及在什么范围内。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
ungroup
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
callback?: function,
)
Promise
Chrome 88+
从各自的组中删除一个或多个选项卡。如果任何组变空,它们将被删除。
PARAMETERS
tabIds
number | [number, ...number[]]
要从各自组中删除的选项卡 ID 或选项卡 ID 列表。
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
update
chrome.tabs.update(
tabId?: number,
updateProperties: object,
callback?: function,
)
Promise
修改选项卡的属性。未在 updateProperties
中指定的属性不会被修改。
PARAMETERS
tabId
number optional
默认为当前窗口current window的选定选项卡。
updateProperties
object
active
boolean optional
该选项卡是否应处于活动状态。不影响窗口是否聚焦(参见
windows.update
)。autoDiscardable
boolean optional
Chrome 54+
当资源不足时,浏览器是否应自动丢弃该选项卡。
highlighted
boolean optional
在当前选择中添加或删除选项卡。
muted
boolean optional
Chrome 45+
该选项卡是否应静音。
openerTabId
number optional
打开此选项卡的选项卡的 ID。如果指定,opener 选项卡必须与此选项卡位于同一窗口中。
pinned
boolean optional
是否应固定选项卡。
selected
boolean optional
Deprecated
Please use highlighted.
是否应选择选项卡。
url
string optional
将选项卡导航到的 URL。不支持 JavaScript URL;改用
scripting.executeScript
。
callback
function optional
The
callback
parameter looks like:(tab?: Tab) => void
tab
Tab optional
有关更新选项卡的详细信息。如果未请求“
tabs
”权限,则tabs.Tab
对象不包含url
、pendingUrl
、title
和favIconUrl
。
RETURNS
Promise<Tab | undefined>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
Events
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
当窗口中的活动选项卡更改时触发。请注意,在触发此事件时可能未设置选项卡的 URL,但您可以侦听 onUpdated 事件,以便在设置 URL 时收到通知。
PARAMETERS
callback
function
The
callback
parameter looks like:(activeInfo: object) => void
activeInfo
object
tabId
number
已激活的选项卡的 ID。
windowId
number
活动选项卡在其中更改的窗口的 ID。
onActiveChanged
chrome.tabs.onActiveChanged.addListener(
callback: function,
)
≤MV2
Deprecated
Please use tabs.onActivated
.
当窗口中选定的选项卡更改时触发。请注意,在触发此事件时可能未设置选项卡的 URL,但您可以侦听 tabs.onUpdated
事件,以便在设置 URL 时收到通知。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, selectInfo: object) => void
tabId
number
selectInfo
object
windowId
number
所选选项卡在其中更改的窗口的 ID。
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
将选项卡附加到窗口时激发;例如,因为它在窗口之间移动。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, attachInfo: object) => void
tabId
number
attachInfo
object
newPosition
number
newWindowId
number
onCreated
chrome.tabs.onCreated.addListener(
callback: function,
)
创建选项卡时触发。请注意,在触发此事件时可能未设置选项卡的 URL 和选项卡组成员资格,但您可以侦听 onUpdated 事件,以便在设置 URL 或将选项卡添加到选项卡组时收到通知。
PARAMETERS
onDetached
chrome.tabs.onDetached.addListener(
callback: function,
)
当选项卡从窗口分离时激发;例如,因为它在窗口之间移动。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, detachInfo: object) => void
tabId
number
detachInfo
object
oldPosition
number
oldWindowId
number
onHighlightChanged
chrome.tabs.onHighlightChanged.addListener(
callback: function,
)
≤MV2
Deprecated
Please use tabs.onHighlighted
.
当窗口中突出显示或选定的选项卡发生变化时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(selectInfo: object) => void
selectInfo
object
tabIds
number[]
窗口中所有突出显示的选项卡。
windowId
number
选项卡更改的窗口。
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
当窗口中突出显示或选定的选项卡发生变化时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(highlightInfo: object) => void
selectInfo
object
tabIds
number[]
窗口中所有突出显示的选项卡。
windowId
number
选项卡更改的窗口。
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
在窗口内移动选项卡时触发。仅触发一个移动事件,代表用户直接移动的选项卡。对于必须移动以响应手动移动的选项卡的其他选项卡,不会触发移动事件。在窗口之间移动选项卡时不会触发此事件;有关详细信息,请参阅 tabs.onDetached
。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, moveInfo: object) => void
tabId
number
moveInfo
object
fromIndex
number
toIndex
number
windowId
number
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
关闭选项卡时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, removeInfo: object) => void
tabId
number
removeInfo
object
isWindowClosing
boolean
由于其父窗口已关闭而关闭选项卡时为True。
windowId
number
选项卡关闭的窗口。
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
由于预渲染或即时将选项卡替换为另一个选项卡时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(addedTabId: number, removedTabId: number) => void
addedTabId
number
removedTabId
number
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(
callback: function,
)
≤MV2
Deprecated
Please use tabs.onActivated
.
当窗口中选定的选项卡更改时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, selectInfo: object) => void
tabId
number
selectInfo
object
windowId
number
所选选项卡在其中更改的窗口的 ID。
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
更新选项卡时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(tabId: number, changeInfo: object, tab: Tab) => void
tabId
number
changeInfo
object
audible
boolean optional
Chrome 45+
选项卡的新声音状态。
autoDiscardable
boolean optional
Chrome 54+
选项卡的新自动丢弃状态。
discarded
boolean optional
Chrome 54+
选项卡的新丢弃状态。
favIconUrl
string optional
选项卡的新图标 URL。
groupId
number optional
Chrome 88+
选项卡的新组。
mutedInfo
MutedInfo optional
Chrome 46+
选项卡的新静音状态和更改原因。
pinned
boolean optional
选项卡的新固定状态。
status
TabStatus optional
选项卡的加载状态。
title
string optional
Chrome 48+
选项卡的新标题。
url
string optional
选项卡的 URL(如果已更改)。
tab
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
缩放选项卡时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(ZoomChangeInfo: object) => void
ZoomChangeInfo
object
newZoomFactor
number
oldZoomFactor
number
tabId
number
zoomSettings
By.一粒技术服务