【发布时间】:2017-12-20 09:59:14
【问题描述】:
我希望在另一个脚本将div 添加到body 时调用某个函数。
我试过了:
var dom_observer = new MutationObserver(function(mutation) {
console.log('function called');
});
var container = document.body;
console.log(container);
var config = { attributes: true, childList: true, characterData: true };
dom_observer.observe(container, config);
我尝试将container 设置为document.body(上面的示例)和document.querySelector('body')。在这两种情况下,console.log() 都显示null,我收到以下错误:TypeError: Argument 1 of MutationObserver.observe is not an object.。将div 添加到body 时未调用回调函数。
我尝试将其设置为 document.getElementsByTagName("body")[0] 和 document.documentElement.childNodes[1]。在这两种情况下,console.log() 都显示undefined 并且回调函数仍然没有被调用。
【问题讨论】:
-
你什么时候调用这个脚本?你的 DOM 是在那个时候加载的吗?如果
console.log(document.body)输出null,要么你不在HTML 文档中,要么标记的解析只在<head>。 Ps : 如果你还不习惯 DOM 解析和不同的加载事件,稍微延迟你对 Mutation Observer 的学习,很有可能你甚至不需要它。 -
谢谢,这就是解决方案。我必须将代码放入
jQuery(document).ready(function{…});。修复了一切。您可以将此作为问题答案发布。
标签: javascript jquery