Наблюдатель мутаций работает для большинства изменений, но не для изменений, вызванных возможной 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)
});