Tengo un cuerpo HTML y quiero obtener su código HTML interno completo antes de que se complete la carga.
<body someproperties> <!--- some elements ---> <script> var html = getFullInnerHTMLsomeWay(); </script> <!--- some elements ---> </body>Entonces, la pregunta es, ¿cómo puedo obtener su código HTML interno completo antes de que se carguen todos sus elementos secundarios? He intentado muchas ideas pero sin éxito todavía. También traté de googlearlo pero no encontré nada útil.
Editar: mi objetivo es reemplazar todas las instancias de un texto específico a otro texto antes de que se muestren al usuario.
La primera vez que se puede interactuar con los elementos (y, por ejemplo, verlos desde las API del DOM y por parte del usuario) es cuando el navegador los inserta en el DOM.
Dado
<body someproperties> <!--- some elements 1 ---> <script> console.log(document.body.innerHTML); </script> <!--- some elements 2 ---> </body> obtendrá el contenido de some elements 1 , así como la etiqueta del script, pero no hay forma de obtener some elements 2 porque aún no se ha cargado.
Solo podrá obtener some elements 2 después de que la etiqueta <script> termine de ejecutarse.
La única forma que se me ocurre de hacer algo como esto sería detener por completo la carga de la página , fetch la página actual, luego analizar la respuesta y finalmente cargar la respuesta en la página actual, lo que sería bastante complicado y No lo recomendaría en absoluto.
No es exactamente lo que estaba preguntando, pero si lo desea, puede modificar o ver el HTML antes de que se muestre: use un MutationObserver para observar los nodos adjuntos en el body .
new MutationObserver(() => { // examine DOM here // can add and remove nodes as needed, before they get rendered }) .observe(document.body, { childList: true });