2011-01-31 23 views
7

Tengo una página en la que aparecen misteriosos errores de JavaScript. Aparentemente provienen de la aplicación que usamos y no son de su propiedad. Estoy trabajando en una solución real a este problema, pero tenemos una demostración mañana y me preguntaba si hay una manera de simplemente suprimir los errores de JS en toda la página (como envolver TODOS los componentes de JavaScript en una captura de prueba gigante).¿Hay alguna forma de probar/capturar una página completa de forma dinámica?

+1

¿Qué va a hacer una prueba de captura gigante? Hará que tu código falle silenciosamente, no funcione correctamente. –

+0

@Matt, si funciona para la demostración ... Ver más información [aquí] (http://stackoverflow.com/questions/2822397/suppress-done-but-with-errors-on-page-in-ie) Un try/catch gigante parece ser la herramienta de elección –

+1

@Pekka: eh, I _guess _... parece bastante débil. –

Respuesta

9

Puede agregar un controlador al evento window.onerror. En este caso, todos los errores que ocurran dentro de la ventana serán redirigidos al manejador de este evento. (Probé esto en Firefox y funcionó, pero estaba teniendo problemas con Chrome; mi instalación de Chrome está bastante desordenada, así que ese podría ser el problema, pero hay errores de Chromium presentados relacionados con este problema: bug #7771 y bug #8939)

window.onerror = function (msg, url, line) { 
    alert("Error on line " + line + " in " + url + ":\n" + msg); 
    // return true to prevent browser from displaying error 
    return true; 
} 
+0

Acabo de ver el enlace que Pekka publicó en el comentario anterior ... No probé esto en IE (no tengo una computadora con Windows por ahí), así que no puedo estar seguro de que funcione de la manera que debería en ese navegador. – jhartz

+4

* ¡Por favor, por favor, no use esto! * ** REVISE EL CÓDIGO. ** He perdido demasiado tiempo tratando con este tipo de idea horrible en Microsoft SharePoint. (+1 para la respuesta) –

+0

Esto es super! Muchas gracias por esta solución de último minuto. ¡Debería ayudar a la demostración a ir genial! P.S. Funciona en Firefox, Chrome e IE8 (es decir, otras versiones no probadas) – Maxx

Cuestiones relacionadas