语法
js
let gettingFrames = browser.webNavigation.getAllFrames(
details // object
)
参数
返回值
一个 Promise
,它将解析为一个对象数组,每个对象都包含以下属性:
errorOccurred
-
boolean
. 如果此 frame 中的最后一个导航被错误中断,则为 true,即onErrorOccurred
事件已触发。 processId
可选 已弃用-
integer
。此值在现代浏览器中未设置。当设置时,它代表运行此选项卡渲染器的进程ID。 frameId
-
integer
. frame 的 ID。如果这是主 frame,则frameId
为零。 parentFrameId
-
integer
. 此 frame 的父级 ID。如果没有父级 frame,则为 -1:即,如果此 frame 是标签页中的顶级浏览上下文。 url
-
string
. 当前与此 frame 关联的 URL。
如果标签页被丢弃,则 Promise 将解析为 null
值。如果找不到指定的标签页,或者发生其他错误,则 Promise 将以错误消息被拒绝。
示例
这段代码会在用户点击浏览器操作时,记录活动标签页中所有 frame 的 URL。
js
function logFrameInfo(framesInfo) {
for (const frameInfo of framesInfo) {
console.log(frameInfo);
}
}
function onError(error) {
console.error(`Error: ${error}`);
}
function logAllFrames(tabs) {
browser.webNavigation
.getAllFrames({
tabId: tabs[0].id,
})
.then(logFrameInfo, onError);
}
browser.browserAction.onClicked.addListener(() => {
browser.tabs
.query({
currentWindow: true,
active: true,
})
.then(logAllFrames, onError);
});
浏览器兼容性
加载中…
注意: 此 API 基于 Chromium 的 chrome.webNavigation
API。本文档源自 Chromium 代码中的 web_navigation.json
。