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。如果此框架中的最后一次导航被错误中断,则为 true,即 onErrorOccurred 事件被触发。

url

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

parentFrameId

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

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

示例

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