webNavigation.onDOMContentLoaded

在頁面中觸發 DOMContentLoaded 事件時觸發。此時文件已載入並解析,DOM 已完全構建,但影像、樣式表和子幀等連結資源可能尚未載入。

語法

js
browser.webNavigation.onDOMContentLoaded.addListener(
  listener,                   // function
  filter                      // optional object
)
browser.webNavigation.onDOMContentLoaded.removeListener(listener)
browser.webNavigation.onDOMContentLoaded.hasListener(listener)

事件有三個函式

addListener(listener)

向此事件新增監聽器。

removeListener(listener)

停止監聽此事件。listener 引數是要移除的監聽器。

hasListener(listener)

檢查 listener 是否已為此事件註冊。如果正在監聽,則返回 true,否則返回 false

addListener 語法

引數

監聽器

當此事件發生時呼叫的函式。該函式將傳遞此引數

details

object。有關導航事件的詳細資訊。有關更多資訊,請參閱詳細資訊部分。

filter 可選

object。一個僅包含一個屬性 url 的物件,該屬性是 Array,其中包含 events.UrlFilter 物件。如果包含此引數,則該事件僅針對匹配陣列中至少一個 UrlFilter 的 URL 的轉換觸發。如果省略此引數,則該事件針對所有轉換觸發。

額外物件

details

tabId

integer。發生導航的標籤頁的 ID。

url

string。給定幀已導航到的 URL。

processId 可選 已棄用

integer。此值在現代瀏覽器中未設定。當設定時,它代表執行此選項卡渲染器的程序ID。

frameId

integer。發生導航的幀。0 表示導航發生在標籤頁的頂級瀏覽上下文中,而不是巢狀的 <iframe> 中。正值表示導航發生在巢狀的 iframe 中。幀 ID 在給定標籤頁和程序中是唯一的。

parentFrameId

integer。此框架父級的ID。如果這是頂層框架,則設定為-1

timeStamp

numberDOMContentLoaded 觸發的時間,以 自紀元以來的毫秒數 為單位。

示例

記錄 onDOMContentLoaded 的目標 URL,前提是目標 URL 的主機名包含 "example.com" 或以 "developer" 開頭。

js
const filter = {
  url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};

function logOnDOMContentLoaded(details) {
  console.log(`onDOMContentLoaded: ${details.url}`);
}

browser.webNavigation.onDOMContentLoaded.addListener(
  logOnDOMContentLoaded,
  filter,
);

瀏覽器相容性

注意:此API基於Chromium的chrome.webNavigation API。本文件源自Chromium程式碼中的web_navigation.json