mostrar - javascript definicion
Comentarios automáticos sobre el error de JavaScript (6)
¿Hay alguna manera de obtener un feedback automático si ocurre un error (incluso errores de sintaxis) cuando se ejecuta un JavaScript en el lado del cliente?
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 detecta un error envía un comentario al servidor.
EDITAR: He entendido mal su pregunta inicialmente, esto debería funcionar:
También tenga en cuenta que esto debe ir ANTES de cualquier javascript que pueda 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 tienes suerte. Javascript simplemente muere cuando hay un error de sintaxis. No hay forma de manejarlo en absoluto.
Probablemente sea mejor enviar solo un informe de error 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.
Además, prepárate para recibir errores insolubles causados por cosas como:
- proxies de seguridad jugando con tu código
- scripts de sitios bloqueados
- errores de Chrome del navegador sin importancia de las extensiones
- IE Mobile, el peor navegador del mundo
Una técnica es usar Ajax para el registro de errores de Javascript
Todos los errores de JavaScript pueden quedar atrapados en el evento 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.
window.onerror = MyFunction (msg, url, line);
mostramos una ventana con los detalles del error, el tipo de navegador (es decir, navigator.userAgent), etc. todo en los campos marcados como READONLY e invitando al usuario a Enviarlos.
Tenemos una casilla de verificación "No mostrar esto otra vez" que se almacena en una cookie de sesión, por lo que si siguen obteniendo errores, puede desactivar la ventana emergente.
A pesar del hecho de que pensamos que esto era "genial", recibimos muy pocos informes, ¡y no estoy seguro de que eso se deba a que obtenemos casi cero errores de tiempo de ejecución!
No estoy seguro acerca de los errores de sintaxis, pero es posible detectar errores js usando el evento window.onerror. La búsqueda de "errores de registro en JavaScript" en google le da muchos resultados ...
Registro de errores de JavaScript en ASP.NET: http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (Desafortunadamente el enlace para descargar en la publicación está roto )
Registrar errores de JavaScript del lado del cliente en el servidor: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx
Notificaciones de error de JavaScript: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx
La forma más fácil para mí fue instalar esta aplicación desde Marketplace de SiteApps:
http://siteapps.com/app/log_javascript_errors_with_ga-181
Una vez que haya instalado la etiqueta de la plataforma, puede instalar muchas aplicaciones y la anterior 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 pueda ayudar.
Leandro