runtime.getContexts()
返回有关扩展程序相关联的上下文的信息。
语法
let gettingContexts = await 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.getContexts({ incognito: true });
gettingContextInfo.then(gotContextInfo);
浏览器兼容性
加载中…