Estoy buscando una manera de tener la consola visible y capaz de aceptar entradas desde el lado del cliente de una aplicación de electrones node.js. Para ser claros, es una aplicación que desarrollé para mi uso personal para ayudar a crear gráficos e informes a partir de archivos de Excel locales, por lo que la seguridad no es un problema.
Tengo mis datos guardados como objetos JS que alimentan mis gráficos y tablas. Sin embargo, de vez en cuando necesito acceder a los datos de un objeto que no merece la pena crear un proceso del lado del cliente debido a su rareza. ¿Hay alguna manera de que la consola esté visible en el lado del cliente de mi aplicación para poder buscar rápidamente datos de mis objetos globales en la consola?
Gracias, Sychord
Puede anular el comportamiento predeterminado de console.log para imprimir en la página:
console.log = function(text){ document.body.insertAdjacentHTML('beforeend', `<div class='log'><div class='text'>${text}</div><div class='time'>${new Date().toLocaleString()}</div></div>`) } console.log('Hello World!') console.log('Log #2') .log{display:flex;justify-content:space-between;padding:15px 20px;border-bottom:1px solid grey;margin-bottom:5px}.log .text{font-weight:bold} Para permitir que el usuario ingrese como lo haría en la consola, puede usar eval para evaluar su JS:
console.log = function(text){ document.body.insertAdjacentHTML('beforeend', `<div class='log'><div class='text'>${text}</div><div class='time'>${new Date().toLocaleString()}</div></div>`) } window.onerror = function(text){ document.body.insertAdjacentHTML('beforeend', `<div class='log danger'><div class='text'>${text}</div><div class='time'>${new Date().toLocaleString()}</div></div>`) } btn.addEventListener('click', function(){ eval(input.value) }) .log{display:flex;justify-content:space-between;padding:15px 20px;border-bottom:1px solid grey;margin-bottom:5px}.log .text{font-weight:bold}.danger{background-color:tomato} <input id="input"><button id="btn">Execute</button> <br><br> Try entering something like: console.log('hi')