runtime.getFrameId()

當從內容指令碼或擴充套件頁面(包括後臺頁面)呼叫時,返回任何視窗全域性物件或框架元素的 frame ID。

語法

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

引數

目標

一個 WindowProxy 或一個 瀏覽上下文 容器 Element(iframe、frame、embed 或 object),用於目標 frame。

返回值

返回目標 frame 的 frame ID,如果 frame 不存在則返回 -1。

示例

此程式碼會遞迴地遍歷子 frame 並獲取父 frame 的 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);

瀏覽器相容性