runtime.getContexts()
返回有关与扩展关联的上下文的資訊。
语法
let gettingContexts = browser.runtime.getContexts(
filter // object
);
参数
filter
-
一个对象,包含与返回的上下文匹配的标准。匹配的上下文必须匹配所有指定的过滤器。如果对象为空,则返回所有上下文。
contextIds
可选-
一个
string
数组。要返回的上下文的 ID。 contextTypes
可选-
一个
string
数组。与要返回的上下文关联的扩展视图类型。取值"BACKGROUND"
、"POPUP"
、"SIDE_PANEL"
和"TAB"
。 documentIds
可选-
一个
string
数组。与要返回的上下文关联的文档的 UUID。 documentOrigins
可选-
一个
string
数组。与要返回的上下文关联的文档的来源。 documentUrls
可选-
一个
string
数组。与要返回的上下文关联的文档的 URL。 frameIds
可选-
一个
integer
数组。要返回的上下文的框架 ID。 incognito
可选-
boolean
。是否仅返回托管在隐身浏览标签中的上下文。 tabIds
可选-
一个
integer
数组。要返回的上下文的选项卡 ID。 windowIds
可选-
一个
integer
数组。要返回的上下文的窗口 ID。
返回值
一个 Promise
,它将使用一个对象数组来实现,每个对象对应一个托管扩展内容的上下文。这些对象具有以下属性
contextId
-
string
。上下文的 ID。 contextType
-
string
。扩展视图的类型。返回"BACKGROUND"
、"POPUP"
、"SIDE_PANEL"
或"TAB"
之一。 documentId
-
string
。与上下文关联的文档的 UUID,如果上下文未托管在文档中,则为 undefined。 documentOrigin
-
string`。与上下文关联的文档的来源,如果上下文未托管在文档中,则为 undefined。
documentUrl
-
string
。与上下文关联的文档的 URL,如果上下文未托管在文档中,则为 undefined。 frameId
-
integer
。上下文的框架 ID,如果上下文未托管在框架中,则为-1
。 incognito
-
boolean
。上下文是否托管在隐身浏览标签中。 tabId
-
integer
。上下文的选项卡 ID,如果上下文未托管在选项卡中,则为-1
。 windowId
-
integer
。上下文的窗口 ID,如果上下文未托管在窗口中,则为-1
。
如果没有匹配的上下文,则使用空数组来实现。
示例
此示例获取与扩展关联的所有上下文,这些上下文托管在隐身浏览标签中,将每个上下文的选项卡 ID、框架 ID 和文档 URL 打印到控制台
function gotContextInfo(contexts) {
for (const context of contexts) {
if (context.tabId == -1) {
console.log("Not hosted in a tab");
} else {
console.log(
`Hosted in tab: ${context.tabId} and frame ${context.frameId} with URL ${context.documentUrl}`,
);
}
}
}
let gettingContextInfo = browser.runtime.getContext({ incognito: true });
gettingContextInfo.then(gotContextInfo);
浏览器兼容性
BCD 表仅在启用了 JavaScript 的浏览器中加载。