The MutationObserverInit dictionary's optional characterData property is used to specify whether or not to monitor the node or nodes being observed for changes to their textual contents.

Character data changes are detectable on any text node, including nodes based on the Text, ProcessingInstruction, and Comment interfaces.

Note that this doesn't monitor content of an HTMLElement, even if it only contains text inside, as it only monitors text nodes themselves. So either pass directly a text node to the observe() method or you need to also set subtree: true.


var options = {
  characterData: true | false


A Boolean value indicating whether or not to call the observer's callback function when textual nodes' values change.

If true, the callback specified when observe() was used to start observing the node or subtree is called any time the contents of a text node are changed.

You can expand the capabilities of attribute mutation monitoring using other options:

  • characterDataOldValue lets you specify whether or not you want the previous value of changed text nodes to be provided using the MutationRecord's oldValue property.
  • subtree lets you specify whether to watch the target node and all of its descendants (true), or just the target node (false).

If you set characterDataOldValue to true, characterData is automatically assumed to be true, even if you don't expressly set it as such.



Browser compatibility

BCD tables only load in the browser