Обозреватель мутаций не распознает участки Specifi c - PullRequest
0 голосов
/ 14 апреля 2020

Наблюдатель мутаций работает для большинства изменений, но не для изменений, вызванных возможной JavaScript.

Иерархия

<HTML>
   < "ql-editor" >
           < div> <span> Added Element </span> 
           < div/>
           < div/>

Наблюдатель мутаций может распознать пяди. Но вскоре после того, как диапазон создан, другой элемент диапазона становится родительским для диапазона, и наблюдатель мутации не может его распознать.

Пробовал

Я пытался создать точки останова в Chrome Dev провел целый день, делая это. Я пытался использовать события .bind (), .on (). Я также попытался переопределить javascript, но это было минимизировано и трудно сделать это.
Как я могу go об обнаружении нового диапазона?

Код

//Load DOM
$(window).on('load', function (e){

 //Goal; Highlight Task Nodes
function highlight(record,observer){

    //Check Each Change 
    record.forEach((change)=> {

        // If Child was Added
        if (change.type == 'childList'){
            //Check if ChildNode has Class of Interest
            change.addedNodes.forEach((child)=>{
                // If it does then grab color
                if(child.className == "task-mention"){
                    var color = child.style.background;
                    //Set Color of Task
                    child.parentNode.lastElementChild.style.backgroundColor = color; 

                }

            })

        }

        //If Attribute was Updated
        if (change.type =='attributes'){
            if (change.target.className =="task-mention__status"){
                var color = child.style.background;
                child.parentNode.lastElementChild.style.backgroundColor = color; 

            }
        }

    })
};

//Content Editor
var editor =  $('div.ql-editor.focus-visible')[0];

//Observer
var mutationObserver = new MutationObserver(highlight)

//Options
var mutationOptions = {
    subtree: true,
    childList: true,
    attributes:true,
}

//Initiate
mutationObserver.observe(editor,mutationOptions)


});
...