Tengo un archivo report.html externo que también contiene JavaScript. Este JavaScript tiene muchas variables que contienen muchos valores. (Mb en texto plano) Al final se toma y se rinde a la mesa bonita. Pero necesito sacar estas variables de report.html a Node-red y procesarlas allí.
Traté de cargar el archivo e imprimirlo, pero no hizo la función JavaScript interna.
¿He leído de alguna manera la variable como una variable en el nodo rojo?
Por supuesto, podría hacer el analizador y procesar todo el documento y analizarlo manualmente, pero es un montón de trabajo en caso de que sea posible cargarlo de alguna manera.
Dado que su html ya está cargado como una cadena en msg.payload y su código javascript está delimitado por las etiquetas <script> y </script> , primero puede analizar su html de la siguiente manera:
var jsCode = msg.payload.split("<script>").pop().split("</script>")[0]; Y luego, para ejecutar el código representado en la cadena jsCode , use la función eval() :
eval(jsCode);Su entorno actuará tal como fue escrito en el editor y ejecutado por usted, por lo que debe tener acceso a todas las variables y funciones declaradas en el código js en línea.
En realidad, no es seguro usar eval() VER POR QUÉ , pero para su caso tal vez sea la mejor solución.