runtime.getFrameId()

从内容脚本或扩展页面(包括后台页面)调用时,返回任何窗口全局对象或框架元素的框架 ID。

语法

js
let gettingInfo = browser.runtime.getFrameId(
  target               // object
)

参数

target

目标框架的 WindowProxy浏览上下文 容器 Element(iframe、frame、embed 或 object)。

返回值

返回目标框架的框架 ID,如果框架不存在,则返回 -1。

示例

此代码递归遍历子框架并获取父框架 ID。

js
const parents = {};

function visit(win) {
  const frameId = browser.runtime.getFrameId(win);
  const parentId = browser.runtime.getFrameId(win.parent);
  parents[frameId] = win.parent !== win ? parentId : -1;

  try {
    const frameEl = browser.runtime.getFrameId(win.frameElement);
    browser.test.assertEq(frameId, frameEl, "frameElement id correct");
  } catch (e) {
    // Can't access a cross-origin .frameElement.
  }

  for (const frame of win.frames) {
    visit(frame);
  }
}
visit(window);

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

**注意:** Microsoft Edge 兼容性数据由 Microsoft Corporation 提供,并根据 Creative Commons Attribution 3.0 United States License 许可在此包含。