DOM Mutation Observer - garevna/js-course GitHub Wiki

:mortar_board: Document Object Model

:mortar_board: MutationObserver

Constructor
var target = document.body.appendChild (
    document.createElement ( "h2" )
)
target.innerText = "Hello"
target.style.color = "#097"

var input = document.body.appendChild (
    document.createElement ( "h3" )
)
input.innerText = "Hello"
input.contentEditable = true
input.style = `
    padding: 5px 10px;
    border: solid 1px #999;
    font-family: Arial;
    color: #f50;
`
 
var observer = new MutationObserver (
    function ( mutations ) {
        mutations.forEach(
            function ( mutation ) {
                mutation.type === "characterData" ?
                    target.innerText = mutation.target.data :
                    null
            }
        )   
    }
)
 
var config = {
    attributes: true,
    childList: true,
    characterData: true,
    attributeOldValue: true,
    characterDataOldValue: true,
    subtree: true
}

observer.observe ( input, config )