web api interface
MutationEvent
The MutationEvent interface provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.
[!NOTE] Using mutation events is problematic:
- Their design is flawed.
- Adding DOM mutation listeners to a document profoundly degrades the performance of further DOM modifications to that document (making them 1.5 - 7 times slower!). Moreover, removing the listeners does not reverse the damage.
- They have poor cross-browser compatibility: Safari doesn’t support
DOMAttrModified(see WebKit bug 8191) and Firefox doesn’t support mutation name events (likeDOMElementNameChangedandDOMAttributeNameChanged).They have been deprecated in favor of mutation observers. Consider using these instead.
Instance properties
This interface also inherits properties from its parent UIEvent, and indirectly from Event.
attrChangeRead only Deprecated- : Indicates what kind of change triggered the
DOMAttrModifiedevent. It can beMODIFICATION(1),ADDITION(2) orREMOVAL(3). It has no meaning for other events and is then set to0.
- : Indicates what kind of change triggered the
attrNameRead only Deprecated- : Indicates the name of the node affected by the
DOMAttrModifiedevent. It has no meaning for other events and is then set to the empty string ("").
- : Indicates the name of the node affected by the
newValueRead only Deprecated- : In
DOMAttrModifiedevents, contains the new value of the modifiedAttrnode. InDOMCharacterDataModifiedevents, contains the new value of the modifiedCharacterDatanode. In all other cases, returns the empty string ("").
- : In
prevValueRead only Deprecated- : In
DOMAttrModifiedevents, contains the previous value of the modifiedAttrnode. InDOMCharacterDataModifiedevents, contains previous new value of the modifiedCharacterDatanode. In all other cases, returns the empty string ("").
- : In
relatedNodeRead only Deprecated- : Indicates the node related to the event, like the changed node inside the subtree for
DOMSubtreeModified.
- : Indicates the node related to the event, like the changed node inside the subtree for
Instance methods
initMutationEvent()Deprecated- : Constructor method that returns a new
MutationEventconfigured with the parameters given.
- : Constructor method that returns a new
Mutation events list
The following is a list of all mutation events:
DOMAttrModified(Not supported by Safari)DOMAttributeNameChanged(Not supported by Firefox)DOMCharacterDataModifiedDOMElementNameChanged(Not supported by Firefox)DOMNodeInsertedDOMNodeInsertedIntoDocumentDOMNodeRemovedDOMNodeRemovedFromDocumentDOMSubtreeModified
Examples
You can register a listener for mutation events using addEventListener() as follows:
element.addEventListener("DOMNodeInserted", (event) => {
// …
});
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.