webNavigation.getFrame()

检索有关特定框架的信息。框架可以是标签页中的顶级框架或嵌套的 <iframe>,并由标签 ID 和框架 ID 唯一标识。

这是一个异步函数,它返回一个 Promise

语法

js
let gettingFrame = browser.webNavigation.getFrame(
  details                // object
)

参数

details

object. 有关要检索信息的框架的信息。

tabId

integer. 框架所在的标签页的 ID。

processId 可选 已弃用

integer. 此值在现代浏览器中未设置。当它被设置时,它表示运行此标签页渲染器的进程的 ID。

frameId

integer. 给定标签页中框架的 ID。

返回值

一个 Promise,它将使用包含以下属性的对象来完成

errorOccurred

boolean. 如果此框架中的上次导航因错误中断,则为真,即 onErrorOccurred 事件已触发。

url

string. 当前与此框架关联的 URL,如果由 frameId 标识的框架在由 tabId 标识的标签页中存在过。与给定 frameId 关联的 URL 的事实并不意味着相应的框架仍然存在。

parentFrameId

integer. 此框架父级的 ID。如果不存在父级框架,则为 -1:也就是说,如果此框架是标签页中的顶级浏览上下文。

如果标签页被丢弃,则 Promise 将解析为 null 值。如果找不到指定的标签页或框架 ID,或者发生其他错误,则 Promise 将被拒绝并显示错误消息。

浏览器兼容性

BCD 表仅在浏览器中加载

示例

js
function onGot(frameInfo) {
  console.log(frameInfo);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

let gettingFrame = browser.webNavigation.getFrame({
  tabId: 19,
  frameId: 1537,
});

// Edge specific - processId is required not optional, must be integer not null
//let gettingFrame = browser.webNavigation.getFrame({ tabId: 19, processId: 0, frameId: 1537 });

gettingFrame.then(onGot, onError);

注意:此 API 基于 Chromium 的 chrome.webNavigation API。此文档源自 Chromium 代码中的 web_navigation.json