A veces, la devolución de llamada del observador de mutaciones no se activa cuando lo espero.
Si ejecuto este código en la consola de herramientas de desarrollador:
// callback for mutations observer callbackForAllChanges = function (mutationsList, observer) { console.log("mutations: ", mutationsList); }; // create mutation observer allChanges = new MutationObserver(callbackForAllChanges); // attach mutation observer to document allChanges.observe(document, { childList: true, subtree:true }); // create new child document.body.appendChild(document.createElement("div"));Esperaría que la devolución de llamada se active cuando cree un nuevo niño. Pero a veces lo hace y a veces no.
Cuando ejecuto el código en la consola de devtools mientras estoy en stackoverflow, funciona: veo mutations: [MutationRecord] registrado en la consola.
Cuando entro en Twitter y ejecuto el código anterior en la consola de devtools, parece que no funciona: mutations: [MutationRecord] no está registrado en la consola.
¿Qué podría causar que Mutation Observer no funcione en Twitter?
mutations: [MutationRecord] no registra const newDiv = document.createElement('div') newDiv.setAttribute('id','newDiv') // callback for mutations observer callbackForAllChanges = function (mutationsList, observer) { console.log("mutations: ", mutationsList); }; // create mutation observer allChanges = new MutationObserver(callbackForAllChanges); // attach mutation observer to document allChanges.observe(newDiv, { childList: true, subtree:true }); // create new child newDiv.appendChild(document.createElement("div"));