una tiene tablas tabla saber obtener filas evento elemento ejemplos editar datos crear con agregar javascript browser javascript-events cross-browser

tiene - ¿Hay alguna forma en JavaScript para escuchar eventos de la consola?



saber si un elemento tiene un evento jquery (5)

En la misma función que está utilizando para hacer console.log (), simplemente publique el mismo mensaje en un servicio web en el que está grabando los registros.

Estoy intentando escribir controlador para excepciones no detectadas y advertencias del navegador en javascript. Todos los errores y advertencias deben enviarse al servidor para su posterior revisión.

Las excepciones manejadas se pueden atrapar y registrar fácilmente con

console.error("Error: ...");

o

console.warn("Warning: ...");

Por lo tanto, no son un problema si se invocan desde el código de JavaScript, incluso más, las excepciones no controladas se podrían atrapar con esta paz de código:

window.onerror = function(){ // add to errors Stack trace etc. }); }

así que las excepciones están bastante cubiertas pero me he quedado con las advertencias que el navegador envía a la consola. Por ejemplo, seguridad o advertencias de validación html. El siguiente ejemplo está tomado de la consola google chrome

La página en https://domainname.com/ ejecutó contenido inseguro desde http://domainname.com/javascripts/codex/MANIFEST.js .

Sería genial si hay algún evento como window.onerror pero para advertencias. ¿Alguna idea?


Estás haciendo esto al revés. En lugar de interceptar cuando se registra un error, desencadenar un evento como parte del mecanismo de manejo de errores y registrarlo como uno de los oyentes del evento:

try { //might throw an exception foo(); } catch (e) { $(document).trigger(''customerror'', e); } function customErrorHandler(event, ex) { console.error(ex) } function customErrorHandler2(event, ex) { $.post(url, ex); }

este código usa jQuery y está simplificado en exceso para su uso como ejemplo.


Usted podría simplemente envolver los métodos de la console usted mismo. Por ejemplo, para grabar cada llamada en una matriz:

var logOfConsole = []; var _log = console.log, _warn = console.warn, _error = console.error; console.log = function() { logOfConsole.push({method: ''log'', arguments: arguments}); return _log.apply(console, arguments); }; console.warn = function() { logOfConsole.push({method: ''warn'', arguments: arguments}); return _warn.apply(console, arguments); }; console.error = function() { logOfConsole.push({method: ''error'', arguments: arguments}); return _error.apply(console, arguments); };


Más Succint Way:

// this method will proxy your custom method with the original one function proxy(context, method, message) { return function() { method.apply(context, [message].concat(Array.prototype.slice.apply(arguments))) } } // let''s do the actual proxying over originals console.log = proxy(console, console.log, ''Log:'') console.error = proxy(console, console.error, ''Error:'') console.warn = proxy(console, console.warn, ''Warning:'') // let''s test console.log(''im from console.log'', 1, 2, 3); console.error(''im from console.error'', 1, 2, 3); console.warn(''im from console.warn'', 1, 2, 3);


Sé que es una publicación anterior, pero puede ser útil de todos modos, ya que la otra solución no es compatible con navegadores antiguos.

Puede redefinir el comportamiento de cada función de la consola (y para todos los navegadores ) de esta manera:

// define a new console var console = (function(oldCons){ return { log: function(text){ oldCons.log(text); // Your code }, info: function (text) { oldCons.info(text); // Your code }, warn: function (text) { oldCons.warn(text); // Your code }, error: function (text) { oldCons.error(text); // Your code } }; }(window.console)); //Then redefine the old console window.console = console;