Returns the frame ID of any window global or frame element when called from a content script or extension page, including background pages.


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



A WindowProxy or a browsing context container Element (iframe, frame, embed, or object) for the target frame.

Return value

Returns the frame ID of the target frame, or -1 if the frame doesn't exist.


This code recursively walks descendant frames and gets parent frame IDs.

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) {

Browser compatibility

BCD tables only load in the browser

Note: Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.