webNavigation.getFrame()

获取有关特定框架的信息。一个框架可以是标签页中的顶层框架,也可以是嵌套的 <iframe>,其唯一标识由标签页 ID 和框架 ID 一起确定。

这是一个返回 Promise 的异步函数。

语法

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

参数

details

object。要获取信息的框架的信息。

tabId

integer。该框架所属的标签页 ID。

processId 可选 已弃用

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

frameId

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

返回值

一个 Promise,且该 promise 会以包含以下属性的对象兑现:

errorOccurred

boolean。如果该框架中的最后一次导航因错误中断(即触发了 onErrorOccurred 事件),则为真。

url

string。当前与该框架关联的 URL(如果由 frameId 标识的框架曾经存在于由 tabId 标识的标签页中)。某个 URL 与特定 frameId 关联并不意味着该框架当前仍然存在。

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 专属:processId 并非可选项而是必选项,必须为一个整型而非 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