observe
一、认识
**observe()
**方法配置了 MutationObserver
对象的回调方法以开始接收与给定选项匹配的 DOM
变化的通知。根据配置,观察者会观察 DOM
树中的单个 Node
,也可能会观察被指定节点的部分或者所有的子孙节点。要停止 MutationObserver
(以便不再触发它的回调方法),需要调用 MutationObserver.disconnect()
方法。
二、语法
mutationObserver.observe(target[, options])
-
target
:DOM
树中的一个要观察变化的DOM Node
(可能是一个Element
),或者是被观察的子节点树的根节点。 -
options
: 此对象的配置项描述了DOM
的哪些变化应该报告给MutationObserver
的callback
。当调用observe()
时,childList
、attributes
和characterData
中,必须有一个参数为true
。否则会抛出TypeError
异常。options
的属性如下:-
subtree
: 当为true
时,将会监听以target
为根节点的整个子树。包括子树中所有节点的属性,而不仅仅是针对target
。默认值为false
。 -
childList
: 当为true
时,监听target
节点中发生的节点的新增与删除(同时,如果subtree
为true
,会针对整个子树生效)。默认值为false
。 -
attributes
: 当为true
时观察所有监听的节点属性值的变化。默认值为true
,当声明了attributeFilter
或attributeOldValue
,默认值则为false
。 -
attributeFilter
: 一个用于声明哪些属性名会被监听的数组。如果不声明该属性,所有属性的变化都将触发通知。 -
attributeOldValue
: 当为true
时,记录上一次被监听的节点的属性变化;可查阅监听属性值了解关于观察属性变化和属性值记录的详情。默认值为false
。 -
characterData
: 当为true
时,监听声明的target
节点上所有字符的变化。默认值为true
,如果声明了characterDataOldValue
,默认值则为false
-
characterDataOldValue
: 当为true
时,记录前一个被监听的节点中发生的文本变化。默认值为false
-