2011-02-27 13 views
8

¿Es posible rastrear los errores JS que encuentra un visitante? Obviamente, hacemos nuestras propias pruebas, pero de vez en cuando un visitante ejecutará una determinada versión del navegador, o tendrá un complemento en particular, ya que provocará un error JS. Asimismo, a veces un error en el JS llega a la producción desapercibido.¿Seguimiento de errores JS de visitante?

Sería extremadamente útil si de alguna manera pudiéramos capturar estos eventos, y ajax una secuencia de comandos en nuestro servidor con detalles del error para que podamos intentar solucionar el problema.

ACTUALIZACIÓN: Gracias por los comentarios. Normalmente después de registrar he conseguido encontrar:
Logging Clientside JavaScript Errors on Server
el cual tenía las cosas en window.onerror y también algunas cosas interesantes sobre jQuery y una FireFox onerror error que todavía no se ha fijado para el año ...

Respuesta

4

Sí, use window.onerror.

Para la parte de registro AJAX, no confíe en ningún código que pueda ejecutarse después de que se haya producido el error. Es posible que desee mantenerlo lo más simple posible haciendo la solicitud con una etiqueta de secuencia de comandos insertada dinámicamente con la fuente configurada para ser su secuencia de comandos del servidor con los datos como parámetros GET. Sin embargo, tenga en cuenta que el uso de GET lo limitará en términos de números de caracteres en la ruta src (~ 2000 en IE).

Independientemente de cómo lo haga, es importante mantenerlo simple ya que no quiere que su código de registro de errores sea propenso a errores exactamente en las situaciones en las que es más probable que se ejecute (casos límite).

Deshabilitará esto en entornos que no sean de producción o podría enmascarar problemas.

2

Puede usar el evento onerror en JS para obtener los detalles del error. Hoptoad hacer esto, por ejemplo, y registrar los errores a su consola, el código vuelve a utilizar una gran cantidad de secuencias de comandos JS agradables incluyendo una función de printStackTrace que es grande .....

Se puede ver cómo lo hacen aquí:

http://hoptoadapp.com/javascripts/notifier.js

Cuestiones relacionadas