Si el siguiente código se ejecuta en DevTools o en la barra de direcciones del navegador, el elemento h1 se insertará al final de la página de un sitio web.
const elm = document.createElement('h1') const txt = document.createTextNode('New text') elm.appendChild(txt) document.body.appendChild(elm) ¿Puede algún sitio evitar que esto suceda usando, por ejemplo, MutationObserver ?
Una forma simple sería sobrescribir appendChild en document.body para que llamarlo no haga nada.
// page code: document.body.appendChild = () => {}; // user code: const elm = document.createElement('h1') const txt = document.createTextNode('New text') elm.appendChild(txt) document.body.appendChild(elm) Un MutationObserver también funcionaría: observe el document.body para los cambios de childNode y llame a .remove() en todos los nodos agregados (disponible dentro del parámetro de devolución de llamada).