元素上的DOMNodeInsertedIntoDocument

时间:2013-06-12 14:59:06

标签: javascript html dom javascript-events

我希望“抓住”<body>创建的第一时刻。我已尝试使用DOMNodeInserted / DOMNodeInsertedIntoDocument。这是我的代码:

<html>
<head>
<script>
document.addEventListener("DOMNodeInserted", handleDomInserted, true);
document.addEventListener("DOMNodeInsertedIntoDocument", handleDOMNodeInsertedIntoDocument, true);

function handleDOMNodeInsertedIntoDocument(e) {
  console.log(e);
}
function handleDomInserted(e) {
  console.log(e);
}
</script> 
</head>

<body> 
<div id="foo">
  <span id="bazz"></span>
</div>
</body>

</html>

为什么这些功能永远不会被调用? 谢谢!

1 个答案:

答案 0 :(得分:5)

代码是正确的,但是当浏览器最初解析HTML时,不会触发JavaScript事件。 JS evens只会在JS完成DOM操作时触发。

E.g。如果您将以下内容添加到代码示例中,则会触发事件:

<script>
var d = document.createElement('div');
d.innerHTML = 'test';
document.body.appendChild(d);
</script>