[英]Wait for document.body existence
我編寫了一個在頁面加載之前工作的 Chrome 擴展程序(使用屬性"run_at": "document_start"
)。 問題是我想在創建網頁主體后立即將div
標記添加到它。 在該document.body
為 null 之前,我無法向其附加標簽。
我不在乎身體的滿負荷,我只需要它存在。
我正在嘗試找到在創建 html 中的body
標簽(未完全加載,剛剛創建)時收到警報的最佳方式。 我可以編寫這種情況下的任何事件處理程序嗎?
另外,我不想使用jQuery
或任何其他非內置庫。
您可以在document.documentElement
上使用一個 突變觀察者來監聽其childList
變化,並查看添加的內容是否是body
。
示例:實時復制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
<script>
(function() {
"use strict";
var observer = new MutationObserver(function() {
if (document.body) {
// It exists now
document.body.insertAdjacentHTML(
"beforeend",
"<div>Found <code>body</code></div>"
);
observer.disconnect();
}
});
observer.observe(document.documentElement, {childList: true});
})();
</script>
</head>
<body>
<div id="foo"></div>
</body>
</html>
您可以使用類似於$(document).ready()
DOMContentLoaded
事件
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
});
MDN說
DOMContentLoaded
事件在document
完全加載和解析后觸發,無需等待樣式表、圖像和子框架完成加載(load
事件可用於檢測完全加載的頁面)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.