Using DOM mutation events

"Cancelable" means you can prevent the modification from happening by calling the preventDefault() method. "Bubbles" is a bit harder to explain. Mention stopPropagation().

event cancelable bubbles
DOMNodeInsertedIntoDocument no no
DOMNodeRemovedFromDocument no no
XopusAfterNodeCreated no no
XopusNodeInsertedIntoDocument no no
XopusNodeRemovedFromDocument no no
DOMAttrModified no yes
DOMCharacterDataModified no yes
DOMNodeInserted no yes
DOMNodeRemoved no yes
DOMSubtreeModified no yes
XopusAfterAttrInserted no yes
XopusAfterAttrModified no yes
XopusAfterAttrRemoved no yes
XopusAfterAttrSpecifiedChangedEvent no yes
XopusAfterChildInserted no yes
XopusAfterChildRemoved no yes
XopusAfterNodeMerged no yes
XopusAfterNodeMoved no yes
XopusAfterNodeSplit no yes
XopusAfterNodeValueModified no yes
XopusAfterDocumentStructureModified no no
XopusAfterSubtreeModified no yes
XopusBeforeAttrInserted yes yes
XopusBeforeAttrModified yes yes
XopusBeforeAttrRemoved yes yes
XopusBeforeChildInserted yes yes
XopusBeforeChildRemoved yes yes
XopusBeforeNodeMerged yes yes
XopusBeforeNodeMoved yes yes
XopusBeforeNodeSplit yes yes
XopusBeforeNodeValueModified Case 193953 Case 193953
XopusBeforeSubtreeModified yes yes
XopusBeforeNodeCreated yes no