2010-04-13 11 views
18

¿Es posible que Firebug detenga un javascript presionando un botón o un atajo de teclado en lugar de detenerlo configurando un punto de interrupción?¿Es posible detener un javascript con Firebug sin usar puntos de interrupción?

¿Por qué me gustaría hacer esto? Tenemos un sitio web muy dinámico con muchas animaciones. Sería de gran ayuda si pudiera detener los scripts en el momento en que la animación está haciendo algo que quiero inspeccionar. Eso sería mucho más rápido que jugar con los puntos de interrupción.

Respuesta

4

Hay un botón de pausa en Firebug. Al hacer clic en eso es lo que estás buscando.

+3

El botón de pausa que lleva la etiqueta "¿romper todos los errores?" Así no es como funciona eso. –

+0

@matt, al menos hace el truco para un análisis rápido. La solución es lo suficientemente buena para mí. +1 – Mateng

1

dependiendo de la biblioteca de animación que esté utilizando, puede haber un método 'detener todas las animaciones' - jQuery's .stop(), por ejemplo. ¿Cómo estás manejando las animaciones?

2

Si sabe dónde está haciendo algo que desea inspeccionar, ¿qué pasa con los puntos de interrupción? Además, puede usar la palabra clave debugger en el código, o puede inyectar instrucciones console.log/debug/warn/info en su código. (Puede anular el objeto de la consola para aquellos entornos que no tienen uno).

0

La mejor manera de arreglar esto es ir al menú desplegable HTML que está al lado de la pestaña HTML en firebug. Deseleccione "resaltar cambios" y "desplazar los cambios para ver" y eso le permitirá inspeccionar el código html y css que se está ejecutando. Espero que ustedes quisieran hacer esto.

7

Ésta es la forma en que lo hice, desde la consola Web (no el bloc de notas), ejecute:

window.addEventListener("keydown", function() {debugger;}) 

luego volver a la pestaña depurador. Cuando enfoca el documento y presiona una tecla, el navegador pausará JS.

+0

Eso es bueno para atrapar eventos ajax rápidos ... – Nikit

+0

Uhh, lindo: -/... btw, es solo javascript, por lo que se puede usar (inyectar) de muchas maneras, no solo desde la consola, ¿verdad ?. Gracias. – erm3nda

+0

sin duda, pero debe estar en el mismo contexto de JavaScript que el documento, por lo que el bloc de notas no funcionaría. Sin embargo, definitivamente puedes incluirlo en el javascript del documento. – Eric

-1

La manera más fácil es instalar la extensión de Firefox "PrefBar". Allí puede agregar una casilla de verificación "JavaScript". Si lo desactiva, javascript detenido.

+0

Bueno ... ¿cómo puede instalar una extensión de Firefox, pero no pudo leer y comprender la pregunta ...? :-). Parar significa correr, luego detener, no "desactivar". El objetivo del asker es poder pausar y detener bajo demanda, sin establecer puntos críticos :-) – erm3nda

1

Si utiliza el complemento de desarrollador web, puede desactivar todas las secuencias de comandos java que se ejecutan en la página y luego usar Firebug como lo desee.

+0

Wow.'http: //chrispederick.com/work/web-developer/ 'Ahora puedo solucionar mi código JS con pesadas actualizaciones de CSS y ver exactamente qué está pasando. La mayoría de las otras soluciones en esta página no pudieron llevarme allí. No puede verificar CSS cuando JS está 'detenido' en el script. @Marty thx. – zipzit

+0

Esto no detiene la ejecución del script de la página actual. Solo desactiva la recarga de JavaScript en la página siguiente por completo, lo que no ayuda a inspeccionar las animaciones en un punto específico. –

0

Si el sitio web está continuamente cargando contenido de su servidor, puede cambiar al panel de red. El menú de contexto tiene una entrada "Romper en XHR" que, cuando está marcada, detendrá tu script cada vez que intente obtener contenido nuevo.

3

Firebug tiene diferentes formas de detener la ejecución de scripts sin establecer puntos de interrupción en líneas específicas. Estas opciones se llaman Break On features.

En su caso veo dos opciones relevantes:

  1. Romper el código JavaScript en la siguiente línea ejecutada
    El Guión panel tiene una rotura El botón Siguiente (*Break On Next* button), que le permite detener la ejecución del script en la siguiente instrucción de JavaScript ejecutada.Esta característica también se puede habilitar a través del atajo de teclado Ctrl + Alt + B.

    Por lo tanto, simplemente presione el atajo de teclado una vez que la animación esté en el punto en el que desea inspeccionarla.

  2. rotura en HTML mutación
    El HTML panel tiene una rotura El botón Mutate (*Break On Mutate* button), lo que le permite detener la ejecución del script en la próxima mutación HTML.
    También hay más opciones de grano fino para detenerse en la mutación de un elemento específico, que están disponibles dentro del menú contextual de los elementos. Esas opciones son:

    • rotura en el atributo Cambio: Detiene la ejecución del script cuando se añade un atributo del elemento, modificado o eliminado.
    • Break On Child Addition or Removal: Detiene la ejecución del script cuando se agrega o elimina un nodo secundario.
    • Remoción del elemento de interrupción: Detiene la ejecución del script cuando se elimina el elemento.

    En su caso rotura en el atributo Cambio puede ser la mejor opción en caso de que la animación cambia la CSS dentro del atributo style del elemento.

+0

Gracias por ambas opciones, intentaré absolutamente todo lo que encontré para obtener mi forma preferida. Debo depurar algunos scripts de JavaScript y preguntarme cuánto sufriré :-) gracias. – erm3nda

+0

Tenga en cuenta que estas opciones solo funcionan en Firebug y el [desarrollo de Firebug desafortunadamente se suspendió a favor de las herramientas de desarrollo de Firefox] (https://blog.getfirebug.com/2016/06/07/unifying-firebug-firefox-devtools/) (y el panel [* Script * Firebug ya está roto en Firefox 50] (http://stackoverflow.com/a/40748127/432681)). Aunque a las herramientas de desarrollo aún les falta la segunda opción (romper con la mutación HTML). Esta función se solicita en [error 1004678] (https://bugzilla.mozilla.org/show_bug.cgi?id=1004678). –

Cuestiones relacionadas