2009-02-13 12 views
14

¿Hay una manera de obtener una retroalimentación automática en caso de un error (incluso errores de sintaxis) se produce cuando se ejecuta un código JavaScript en el lado del cliente?retroalimentación automática en caso de error JavaScript

Estaba pensando en algo como esto:

<script src="debugger.js"></script> 
<script> 
    // some script with an error in it 
</script> 

Y cada vez que el depurador se da cuenta de un error se envía una respuesta al servidor.

Respuesta

16

EDIT: no he entendido bien su pregunta al principio, esto debería funcionar:

También tenga en cuenta, esto tiene que recorrer antes de cualquier javascript que podría causar errores.

window.onerror = function(msg,u,l) 
{ 
    txt ="Error: " + msg + "\n"; 
    txt+="URL: " + u + "\n"; 
    txt+="Line: " + l + "\n\n"; 
    //Insert AJAX call that passes data (txt) to server-side script 
    return true; 
}; 

En cuanto a los errores de sintaxis, no tiene suerte. Javascript simplemente muere cuando hay un error de sintaxis. No hay forma de manejarlo en absoluto.

+0

He pensado en eso también. Pero parece que solo Firefox hace esto. Safari y Opera se mantienen en silencio cuando trato de alertar al mensaje. – Gumbo

+0

Ok, tal vez solo esté alerta que no funciona. Imprimir el mensaje de error sí. Creo que eso es todo. Gracias. – Gumbo

+0

Trabaja en FF. Para que funcione en IE, debe desactivar la depuración de scripts en la pestaña avanzada de opciones de Internet. No lo tengo para trabajar en Chrome ni en Opera. – some

4

No estoy seguro acerca de los errores de sintaxis, pero es posible coger js errores utilizando window.onerror evento. La búsqueda de "errores de registro en JavaScript" en google le da un montón de resultados ...

Registro de errores JavaScript para ASP.NET: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (Desafortunadamente el enlace para descargar en el post está roto).

Registro de errores de JavaScript del lado del cliente al servidor: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx

Error de JavaScript Notificaciones: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx

0

window.onerror = MyFunction (msg, url, la línea);

aparece una ventana con los detalles del error, el tipo de navegador (es decir, el navegador .userAgent), etc. todo en los campos marcados READONLY e invitando al usuario a enviarlos.

Tenemos una casilla de verificación "No volver a mostrar" que se almacena en una cookie de sesión - por lo que si se dan errores que puede desactivar la ventana emergente.

A pesar de que pensamos que era "muy fría", que se ponen muy pocos informes - y no estoy convencido de que eso se debe a que nos acercamos a los errores de ejecución cero!

9

Una técnica consiste en utilizar Ajax para Javascript error logging

Cada javascript error puede ser atrapado en caso window.onerror. Podemos devolver verdadero o falso para que podamos elegir si el usuario verá el diálogo normal de error de JavaScript. Este script, en el muy poco probable caso de un error de javascript, recopilará información sobre el error y enviará un httprequest a una página que registrará el error de javascript en la base de datos.

+0

Estaba buscando esa página ... +1 –

+0

Gracias por su enlace a esta útil función. Lo intentaré. – Gumbo

0

Probablemente la mejor manera de enviar un único informe de errores por página. Si obtiene un error en un temporizador repetitivo, o el propio AJAX llama de manera recursiva un error, puede terminar llenando su registro con basura innecesaria.

También, estar preparado para recibir errores sin solución causadas por cosas como:

  • proxies de seguridad diddling con su código
  • guiones de sitios bloqueados
  • errores navegador Chrome sin importancia de las extensiones
  • IE Mobile , el peor navegador del mundo
+1

ROFL @ IE Mobile –

0

La manera más fácil para mí fue instalar esto pp de SiteApps mercado:

http://siteapps.com/app/log_javascript_errors_with_ga-181

Una vez que haya instalado la etiqueta de la plataforma, se puede instalar una gran cantidad de aplicaciones y la de arriba es muy útil para mí. Lo uso en 14 sitios web que desarrollé y podía rastrear errores de JavaScript en Google Analytics.

Espero que esto te pueda ayudar.

Leandro

Cuestiones relacionadas