Cuando abro las Herramientas para desarrolladores en Google Chrome, veo todo tipo de características como Perfiles, Líneas de tiempo y Auditorías, ¡pero faltan funcionalidades básicas como poder establecer puntos de interrupción tanto en archivos js como en archivos html y javascript! Intenté usar la consola javascript, que en sí misma tiene errores; por ejemplo, una vez que encuentra un error de JS, no puedo salir de ella a menos que actualice toda la página. Alguien puede ayudar?
211
Respuestas:
Use la pestaña de fuentes, puede establecer puntos de interrupción en JavaScript allí. En el árbol de directorios debajo (con las flechas hacia arriba y hacia abajo), puede seleccionar el archivo que desea depurar. Puede salir de un error presionando reanudar en el lado derecho de la misma pestaña.
fuente
<script> your code </script>
agregue un nombre como:<script> your code //# sourceURL=somename.js </script>
Esto se explica mejor en una respuesta a continuación¿Estás hablando de código dentro de las
<script>
etiquetas, o en los atributos de la etiqueta HTML, como este?De cualquier manera, la
debugger
palabra clave como esta funcionará:Nota: Chrome no se detendrá en
debugger
s si las herramientas de desarrollo no están abiertas.También puede establecer puntos de interrupción de propiedad en archivos JS y
<script>
etiquetas:fuente
Sources
lugar deScripts
ahora.También puedes ponerle un nombre a tu script:
<script> ... (your code here) //# sourceURL=somename.js </script>
por supuesto, reemplace "somename" por algún nombre;) y luego lo verá en el depurador de Chrome en "Fuentes> arriba> (sin dominio)> somename.js" como un script normal y podrá depurarlo como otros scripts
fuente
Actualice la página que contiene el script mientras las herramientas del desarrollador están abiertas en la pestaña de scripts. Esto agregará una entrada (programa) en la lista de archivos que muestra el html de la página, incluido el script. Desde aquí puede agregar puntos de interrupción.
fuente
Otro truco intuitivo y simple para depurar, especialmente el script dentro de html devuelto por ajax, es poner temporalmente console.log ("prueba") dentro del script.
Una vez que haya disparado el evento, abra la pestaña de la consola dentro de las herramientas del desarrollador. verá el enlace del archivo de origen que se muestra en el lado derecho de la declaración de impresión de depuración "prueba". simplemente haga clic en la fuente (algo así como VM4xxx) y ahora puede establecer el punto de interrupción.
PD: además, puedes considerar poner una declaración de "depurador" si estás usando Chrome, como lo que sugiere @Matt Ball
fuente
Mi situación y lo que hice para solucionarlo:
tengo un archivo javascript incluido en una página HTML de la siguiente manera:
Nombre de la página: test.html
Ahora, ingresando el depurador de Javascript en Chrome, hago clic en la pestaña Scripts y desplego la lista como se muestra arriba. Puedo ver claramente scripts / common.js, sin embargo, NO pude ver la página html actual test.html en el menú desplegable, por lo tanto, no pude depurar el javascript incrustado:
Eso fue desconcertante. Sin embargo, cuando eliminé el tipo obsoleto = "text / javascript" del script incrustado:
... y actualicé / volví a cargar la página, listo, apareció en la lista desplegable, y todo volvió a estar bien.
Espero que esto sea útil para cualquiera que tenga problemas para depurar JavaScript incrustado en una página html.
fuente
type
es un atributo obligatorio. En HTML5, es opcional.<div>
me impidió ver el código en el depuradorAgregar
debugger;
en la parte superior de mi script funcionó para mí.fuente
También tenía el mismo problema, cómo depurar JavaScript que está dentro de las
<script>
etiquetas. Pero luego lo encontré en la pestaña Fuentes, llamada "(índice)", con paréntesis. Haga clic en el número de línea para establecer puntos de interrupción.Este es Chrome 71.
fuente
Si no puede ver la pestaña "Scripts", asegúrese de iniciar Chrome con los argumentos correctos. Tuve este problema cuando lancé Chrome para depurar JavaScript del lado del servidor con el argumento
--remote-shell-port=9222
. No tengo ningún problema si ejecuto Chrome sin argumento.fuente
Me encontré con este problema, sin embargo, mi función en línea era una vista angularJS. Por lo tanto, en la carga no pude acceder al script en línea para agregar la depuración, ya que solo index.html estaba disponible en la pestaña de fuentes del depurador.
Esto significaba que cuando estaba abriendo la vista particular con mi línea (no tenía otra opción) no era accesible.
La única forma en que pude golpear fue poner una función errónea o llamar dentro de la función JS en línea.
Mi solución incluyó:
Esto significa que cuando hice clic en mi botón, se me solicitó en la consola de Chrome.
Lo importante aquí fue la fuente de esto:
VM5658:6
hacer clic en esto me permitió pasar por la línea y mantener el punto de ruptura allí para más adelante ...Una forma extremadamente complicada de alcanzarlo ... Pero funcionó y podría resultar útil para las aplicaciones de una sola página que cargan dinámicamente sus vistas.
El
VM[n]
no tiene un valor significativo y eln
encendido equivale a la identificación del script. Esta información se puede encontrar aquí: Chrome "[VM]"fuente
Usando Visual Studio (2012) tuve el mismo problema y cambié a IIS Express resolvió el problema.
La
script
etiquetatype
atributo de no se incluyó en él.Por alguna razón, el Visual Studio Development Server no proporciona todo lo que Chrome necesita para habilitar los puntos de interrupción.
fuente
Sé que la Q no se trata,
Firefox
pero no quería agregar una copia de esta pregunta para responderla yo mismo.Para Firefox, debe agregar
debugger;
para poder hacer lo que @ matt-ball sugirió para lascript
etiqueta.Entonces, en su código, agrega por
debugger
encima de la línea que desea depurar y luego puede agregar puntos de interrupción. Si solo establece los puntos de interrupción en el navegador, no se detendrá.fuente
Esta es una extensión de la respuesta anterior de Rian Schmits . En mi caso, tenía un código HTML incrustado en mi código JavaScript y no podía ver nada más que el código HTML. Tal vez la depuración de Chrome ha cambiado a lo largo de los años, pero al hacer clic con el botón derecho en la pestaña Fuentes / Orígenes me presentó Agregar carpeta al espacio de trabajo . Pude agregar todo mi proyecto, lo que me dio acceso a todos mis JavaScripts. Puede encontrar más detalles en este enlace . Espero que esto ayude a alguien.
fuente