¿Cómo puedo congelar completamente todos los cambios JS DOM usando JS desde una extensión de Chrome?
Ejemplo: un usuario pasa el mouse sobre un botón, que onMouseEnter muestra un modal y lo oculta onMouseLeave . Si vinculo una devolución de llamada a un determinado método abreviado de teclado, ¿cómo puedo congelar el DOM en ese momento para que el modal permanezca visible y nada pueda cambiar en el DOM (hasta que se vuelva a presionar el método abreviado)?
Sé que puede que no haya una API directa para congelar el DOM, pero estoy buscando ideas que me puedan ayudar a hacer esto.
Una idea que probé fue:
Sin embargo, eso no funcionó, si pasaba el mouse sobre el botón y aparecía el modal, luego invocaba ese algoritmo con la combinación de teclas, la clonación se realizaría correctamente y las etiquetas de script se eliminarían, sin embargo, cuando quite el mouse del botón, el modal simplemente se cerraría. Como si el botón todavía estuviera vinculado a onMouseLeave .
Editar: estoy tratando de hacer esto desde un script externo, específicamente una extensión de Chrome.
si tiene una función "myFunc" y desea que funcione mal o deshabilitarla. puede borrar el contenido en el objeto de la ventana.
<button onclick="freeze()">Freeze alert</button> <button onclick="testAlert()">Test alert</button> <script> function freeze() { window.testAlert = function testAlert() { }; } function testAlert() { alert('The alert is active'); } </script>El botón de alerta no funcionará después de hacer clic en el botón de congelación.