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