Al recorrer el código JavaScript en el depurador de Google Chrome, ¿cómo finalizo la ejecución del script si no quiero continuar? La única forma que encontré es cerrando la ventana del navegador.
Al presionar "Recargar esta página" se ejecuta el resto del código e incluso se envían formularios como si se presiona F8 "Continuar".
ACTUALIZACIÓN :
Al presionar F5 (Actualizar) mientras un script está en pausa:
- Google Chrome (v22) ejecuta el script. Si el script envía una solicitud HTTP, se muestra la respuesta HTTP para esa solicitud. La página original no se actualiza.
- IE 9 simplemente se congela. Sin embargo, IE tiene una opción "Detener depuración" que, cuando se presiona (siempre que no haya presionado F5 anteriormente), continúa ejecutando el script fuera del depurador.
- Firebug se comporta de manera idéntica a Chrome.
Cerrar y volver a abrir la ventana del navegador no siempre es la siguiente forma más fácil porque matará el estado de la sesión del navegador y eso puede ser importante. Todos tus puntos de interrupción también se pierden.
ACTUALIZACIÓN (enero de 2014) :
Actualizar durante la depuración:
- Chrome v31: permite que los scripts se ejecuten y se detiene en otros puntos de interrupción (pero no envía solicitudes ajax), luego se actualiza.
- IE 11: la actualización no hace nada, pero puede presionar F5 para continuar.
- Firefox v26: permite que se ejecuten los scripts pero no se detiene en otros puntos de interrupción, envía solicitudes ajax y luego se actualiza.
Tipo de progreso!
Navegue a la misma página mientras se depura:
- Chrome v31: igual que Actualizar.
- IE 11: las secuencias de comandos finalizan, se inicia una nueva sesión del navegador (igual que cerrar y abrir de nuevo).
- Firefox v26: no pasa nada.
También juacala sugirió una solución efectiva. Por ejemplo, si está utilizando jQuery, ejecutar delete $ desde la consola detendrá la ejecución una vez que se encuentre cualquier método jQuery. Lo he probado en todos los navegadores anteriores y puedo confirmar que funciona.
ACTUALIZACIÓN (Mar 2015) :
Finalmente, después de más de 2 años y casi 10K vistas, la respuesta correcta fue dada por Alexander K. Google Chrome tiene su propio Administrador de tareas que puede matar un proceso de pestaña sin cerrar la pestaña en sí, manteniendo intactos todos los puntos de interrupción y otras cosas.
Incluso fui hasta BrowserStack.com para probarlo en Chrome v22 y descubrí que esto funcionaba de esta manera incluso en ese momento.
La solución alternativa de Juacala sigue siendo útil cuando se depura en IE o Firefox.
ACTUALIZACIÓN (enero de 2019) :
Chrome Dev Tools finalmente agregó una forma adecuada de detener la ejecución del script que es agradable (aunque un poco oculto). Consulte la respuesta de James Gentes para más detalles.
debugger;
en la consola de herramientas de desarrollo e inmediatamente pondrá las cosas en el depurador y detendrá el script.Respuestas:
En Chrome, hay "Administrador de tareas", accesible a través de Shift+ ESCo mediante
Puede seleccionar su tarea de página y finalizarla presionando el botón "Finalizar proceso".
fuente
chrome 48
esto solo CERRARÁ la herramienta Dev, y no la terminará, volviendo a abrirla, puede ver que el programa aún se está ejecutando (tried setInterval()
)A partir de abril de 2018, puede detener bucles infinitos en Chrome :
También tenga en cuenta las teclas de acceso directo: F8y Ctrl+\
fuente
body
elemento aquí en SO, establecí un "descanso en -> modificaciones de subárbol", y luego hice clic donde sea. El botón se ve como en la captura de pantalla que publiqué.Una forma de hacerlo es pausar el script, ver qué código sigue donde está actualmente detenido, por ejemplo:
En la consola, haga lo siguiente:
Luego reproduzca el script: causará un error fatal cuando intente acceder
somethingElse
y el script morirá. Voila, has terminado el guión.EDITAR: Originalmente, eliminé una variable. Eso no es lo suficientemente bueno. Debe eliminar una función o un objeto cuyo JavaScript intente acceder a una propiedad.
fuente
you have to delete a function or an object
un truco tan desagradable! (en la interfaz de usuario encajaría bien como botón de matar a todos )Actualización de abril de 2020
A partir de Chrome 80, ninguna de las respuestas actuales funciona. No hay un botón visible de "Pausa": debe hacer clic largo en el botón "Reproducir" para acceder al icono Detener:
fuente
Si se encuentra con esto mientras usa la
debugger
declaración,... entonces creo que la página continuará ejecutándose para siempre hasta que el tiempo de ejecución de js ceda, o el próximo descanso. Suponiendo que está en modo de interrupción por error (el interruptor de icono de pausa), puede asegurarse de que ocurra una interrupción haciendo algo como:
o tal vez llamar a una función inexistente:
(Por supuesto, esto no ayuda si está intentando pasar a través de funciones, aunque quizás podría agregar dinámicamente una
throw 1
o unaz()
en el panel de Fuentes, ctrl-S para guardar y luego ctrl-R para actualizar ... esto Sin embargo, puede omitir un punto de interrupción, pero puede funcionar si está en un bucle).Si está haciendo un bucle y espera activar la
debugger
declaración nuevamente, simplemente puede escribir en suthrow 1
lugar.Luego, cuando presione Ctrl-R, se lanzará el siguiente lanzamiento y la página se actualizará.
(probado con Chrome v38, alrededor de abril de 2017)
fuente
Buena pregunta aqui. Creo que no puedes terminar la ejecución del script. Aunque nunca lo he buscado, he estado usando el depurador de cromo durante bastante tiempo en el trabajo. Por lo general, establezco puntos de interrupción en mi código de JavaScript y luego depuro la parte del código que me interesa. Cuando termino de depurar ese código, generalmente ejecuto el resto del programa o actualizo el navegador.
Si desea evitar que se ejecute el resto del script (por ejemplo, debido a las llamadas AJAX que se van a realizar), lo único que puede hacer es eliminar ese código en la consola sobre la marcha, evitando así esas llamadas de ser ejecutado , entonces podría ejecutar el código restante sin problemas.
¡Espero que esto ayude!
PD: Traté de encontrar una opción para terminar la ejecución en algunos tutoriales / guías como los siguientes, pero no pude encontrarla. Como dije antes, probablemente no exista tal opción.
http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-Script-Debugging-with-C
http://www.nsbasic.com/app/tutorials/TT10.htm
fuente
En referencia a la respuesta dada por @scottndecker a la siguiente pregunta , Chrome ahora ofrece una opción de 'deshabilitar JavaScript' en Herramientas para desarrolladores:
...
en la parte superior derechaLo bueno es que puede detenerse y volver a ejecutar de nuevo simplemente marcando / desmarcando.
fuente
Puede hacerlo, pero primero debe preparar su código.
Instrucciones para detener la ejecución del script en las Herramientas de desarrollo de Google Chrome:
(1) Prepare su código primero, creando una variable global :
(2) Cualquier lugar donde desee dejar de fumar, pruebe el valor de esta variable:
(3) Pausa la ejecución del script en o antes de las líneas de prueba anteriores
(4) Cambiar a consola
(5) Tipo:
(6) Continuar la ejecución del script. El script lo hará
return false
cuando ejecute la prueba del paso (2) anteriorNotas:
(A) Este truco funciona con objetos y variables globales, pero no funcionará con variables locales. Tenga en cuenta que esto:
newVar = 'never used before';
crea una nueva propiedad del objeto de ventana (funciona con el truco anterior), mientras que esto:
var newVar = 'never used before';
crea una variable local (¡NO funciona con el truco anterior!)
(B) Entonces, aún puede usar este truco con código que ya se está ejecutando si tiene una variable global o un objeto que devolverá falso si tiene un valor dado.
(C) En caso de apuro, puede usar el truco de juacala y eliminar un elemento del DOM (en la pestaña de elementos) que causará un error de JavaScript. Por ejemplo, suponga que tiene código
var cartype = $('#cartype').val();
Si elimina el elemento con ID =cartype
antes de esa línea de código, entonces el js se romperá en esa línea. Sin embargo, el elemento seguirá faltando cuando intente volver a ejecutar el código. El truco descrito anteriormente le permite ejecutar y volver a ejecutar el código hasta el infinito.Más notas:
(a) Inserte el punto de interrupción en el código: simplemente escriba
debugger;
una línea por sí mismo. Si DevTools está abierto, el script saltará al depurador en ese punto. Si DevTools no se abre, el código ignorará la declaración.(b) ¿Desea evitar saltar a la biblioteca jQuery al depurar código? Blackbox it. Consulte las instrucciones de blackbox para Chrome - o - para Firefox
Agradecimiento (por favor visite y vote):
Javascript Depuración línea por línea usando Google Chrome
¿Es posible cambiar los valores de las variables de JavaScript mientras se depura en Google Chrome?
fuente
Any place where you may wish to quit, test the value of this variable
¡Esto es horrible! Quiero dejar de fumar donde quiera que esté pisando en este momento, ¡no sé de antemano dónde podría estar!Puede hacer una pausa en cualquier patrón XHR que encuentro muy útil durante la depuración de este tipo de escenarios.
Por ejemplo, he dado un punto de interrupción en un patrón de URL que contiene "/"
fuente
Si tiene un bucle falso, pause el código en el depurador de Google Chrome (el pequeño
||
botón " " mientras está en la pestaña Fuentes).Vuelva a Chrome, abra el "Administrador de tareas" ( Shift+ ESC), seleccione su pestaña, haga clic en el botón "Finalizar proceso".
Recibirá el mensaje Aww Snap y luego podrá volver a cargar ( F5).
Como otros han señalado, volver a cargar la página en el punto de pausa es lo mismo que reiniciar el bucle corrupto y puede causar bloqueos desagradables si el depurador también se bloquea (en algunos casos, lo que lleva a reiniciar Chrome o incluso la PC). El depurador necesita un botón "Parar". Nb: La respuesta aceptada está desactualizada en que algunos aspectos de ella ahora parecen estar equivocados. Si me rechazas, por favor explique :) .
fuente
Abra la pestaña de origen en 'Herramientas para desarrolladores', haga clic en un número de línea en un script que se esté ejecutando, esto creará un punto de interrupción y el depurador se romperá allí.
fuente
Hay muchas soluciones apropiadas para este problema como se mencionó anteriormente en esta publicación, pero he encontrado un pequeño truco que se puede insertar en el script o pegar en la consola de Chromes (depurador) para lograrlo:
Esto hará que la ejecución se detenga cuando golpees
F12
.fuente