语法
js
let gettingFrames = browser.webNavigation.getAllFrames( details // 对象 )
参数
返回值
一个 Promise
,其会兑现为一个对象数组。数组中的每个对象都包含以下属性:
errorOccurred
-
boolean
。如果此框架中的最后一次导航因错误中断(即触发了onErrorOccurred
事件),则为真。 processId
可选 已弃用-
integer
。在现代浏览器中未设置该值。当设置时,它表示运行此标签页渲染器的进程 ID。 frameId
-
integer
。框架的 ID。如果这是主框架,则frameId
为零。 parentFrameId
-
integer
。此框架父框架的 ID。如果没有父框架(即此框架是标签页中的顶级浏览上下文),则为 -1。 url
-
string
。当前与此框架关联的 URL。
如果标签页被丢弃,该 promise 将兑现为 null
。如果找不到指定的标签页或发生其他错误,则该 promise 将以错误消息拒绝。
浏览器兼容性
Loading…
示例
以下代码在用户点击浏览器操作时,记录活动标签页中所有框架的 URL:
js
function logFrameInfo(framesInfo) { for (const frameInfo of framesInfo) { console.log(frameInfo); } } function onError(error) { console.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
。