2012-05-18 12 views
9

Tengo una aplicación web que añade dinámicamente javascript archivos en función de lo que el usuario elige como opciones de uso de AJAX en tiempo real para evitar la actualización de la pantalla.Depuración dinámicamente añadió archivos javascript

Ahora trato de depurar estos archivos javascript agregados dinámicamente y he probado las herramientas de desarrollador de Google Chrome y el complemento de Firebug para Firefox, y he notado que los "archivos" javascript añadidos dinámicamente no aparecen, así que no puedo seleccionar les permite añadir puntos de interrupción etc.

Entonces, ¿hay una solución para esto, es decir, la depuración de forma dinámica añadió archivos javascript?

Respuesta

6

Puedes añadir el comunicado debugger; en los scripts dinámicos en la que desea establecer el punto de interrupción. Esto hará que la parada de cromo sobre ella como un punto de interrupción regular si el subproceso de ejecución llega a la instrucción, mientras que se abre la interfaz de usuario de herramientas de desarrollador.

También puede iniciar la secuencia de comandos con eso, por lo que la secuencia de comandos aparece en el depurador, y se puede configurar manualmente después de que un punto de interrupción en la que desea.

+0

Esto parece funcionar para Chrome, ¿cómo puedo hacer que funcione para Firebug también, ya que la solución anterior no parece funcionar con Firebug. – oshirowanen

18

Consulte sourceURL que es una forma de indicar a las herramientas de desarrollo que deberían tratar las cadenas evaluadas como archivos reales. Hace exactamente lo que estás buscando.

Al final de la cadena que se evaled, dejar comentarios de esta forma:

//# sourceURL=app/js/myapp.js 

A partir de ahí, Chrome DevTools (y Firebug) procesarán esto como un "archivo real".

Much more explanation here y HTML5 Rocks tiene an article y una sourceURL demo.

+0

Esta funcionalidad ahora ha cambiado a: '// # sourceURL = app/js/myapp.js' ya que IE usa la directiva' // @ 'para la compilación condicional. –

+0

THX @JamesHulse. actualizado. –

Cuestiones relacionadas