Estoy intentando crear un documento JSDom que contenga una var global y luego intentar cambiar su valor programáticamente y luego imprimir la salida nuevamente.
Mi código es el siguiente:
const { JSDOM } = require('jsdom'); const dom = new JSDOM(` <!DOCTYPE html> <html lang="en"> <meta charset="UTF-8"> <body> <script> var myGlobalVar = 'foo'; </script> </body> </html>`, { runScripts: 'dangerously' }); dom.window.myGlobalVar = 'bar'; console.log(dom.serialize()) Espero que el resultado sea el mismo documento pero con el valor de myGlobalVar actualizado a "bar" . Esto no está sucediendo y myGlobalVar sigue siendo "foo" .
¿Alguien sabe lo que estoy haciendo mal y si lo que quiero es posible?
Gracias de antemano por cualquier ayuda.
dom.window.myGlobarVar = “bar” establece una propiedad en el objeto de la ventana, no cambia el contenido del DOM que ha proporcionado al constructor JSDom. Si console.log(dom.window.myGlobalVar) , debería ver el resultado como bar .