2011-09-21 15 views
51
herramientas para desarrolladores de Chrome

le permite editar JavaScript en el navegador si el JavaScript está en un archivo .js. Sin embargo, no parece que me permita editar javascript que está incrustado en una página HTML. es decir:El uso de Google Chrome para depurar y editar JavaScript incrustado en la página HTML

<script type="text/javascript> 
// code here that I want to debug/edit 
</script> 

Este es un gran problema para mí, ya que tengo un poco de javascript incrustado en una página determinada.

similares a esta pregunta: Edit JavaScript blocks of web page... live pero esto se trata de Firefox, no cromo.

¿Cómo puedo editar JavaScript incrustado en una página HTML usando Google Chrome Developer Tools?

+5

Puede usar Opera. Opera permite la edición de archivos en línea JS y JS. Después de volver a cargar la página suavemente, se aplicarán los cambios. Haga clic con el botón derecho> Fuente> Realizar cambios> Aplicar cambios. – XP1

+1

@ XP1 nunca pensé que haría +1 en una solución de Opera. Pero aquí estamos. +1 para editar en vivo en Opera. –

Respuesta

28

En realidad Chrome permite hacer eso, elija archivos HTML en pestaña Fuentes en la ventana Herramientas del desarrollador. Verá HTML en lugar de javascript y simplemente agregará puntos de interrupción en las etiquetas <script>. También puede agregar el comando debugger; para ejecutar el script de lo que desea depurar. Por ejemplo:

<script> 
// some code 
debugger; // This is your breakpoint 
// other code you will able to debugg 
</script> 

No se olvide de quitar debugger; 's cuando se quiere liberar su sitio web.

+3

Todavía no funciona para mí. Tomemos http://www.google.co.uk/ como un ejemplo. Navega allí con Chrome y enciende tus herramientas de desarrollador. Puedo editar el archivo .js en la pestaña "Secuencias de comandos", pero si intento editar los archivos "www.google.co.uk/" o "gzip.html" debajo de esa pestaña, no ocurre nada. Hago doble clic en el código pero no obtengo un cursor de edición como hago si hago clic en los archivos .js. ¿¿¿Me estoy perdiendo de algo??? –

+3

Bueno, tienes razón, pero puedes editar esto en la pestaña 'Elementos' en su lugar. – antyrat

+0

¡También al agregar puntos de interrupción podrá editar su secuencia de comandos usando la consola – antyrat

1

Ir a la ficha Elementos, encontrar la secuencia de comandos, haga clic derecho en la parte que necesita y elegir la opción "Editar como HTML".

Si ya no aparece Edición de HTML, haga doble clic en el nodo y debe convertirse resaltados y editable.

+11

Si cambia el código JS en "editar como HTML" mientras está en pausa en un punto de interrupción JS, no modificará el código JS en la pestaña de fuentes. – Jez

+0

¡no funcionará! – JerryGoyal

29

que tenían dificultades para localizar el archivo que tenía mi línea/javascript incrustado. Para otros que tienen el mismo problema, esto puede o no ser útil ...

Usando Chrome 21.0.1180.89 m para Windows

enter image description here

Todos los archivos se muestran tras pulsar ese mismo discretamente colocado botón. Ver:

enter image description here

Ahora usted puede comenzar la depuración ...

enter image description here

+18

+1 para la cara sonriente. –

+0

Ese emoticono necesita la nariz de la NSA. –

+0

A veces, al hacer clic en las cosas, Google Chrome lo alejará de la pestaña __Elementos__ incluso si comenzó allí. Por lo tanto, si no puede editar las cosas, verifique que se encuentre en la pestaña __Elementos__. – Seanny123

14

Ninguna de estas respuestas han trabajado para mí.

Lo que funciona para mí es que si tengo mi javascript en la página ya cargada, puedo copiar ese javascript, editarlo, pegarlo en la consola y redefinirá cualquier función o lo que sea que deba redefinir.

por ejemplo, si la página tiene:

<script> 
var foo = function() { console.log("Hi"); } 
</script> 

puedo tomar el contenido entre el guión, editarlo, y luego introducirlo en el depurador como:

foo = function() { console.log("DO SOMETHING DIFFERENT"); } 

y funcionará para mi.

O si lo tienes como,

function foo() { 
    doAThing(); 
} 

Puede escribir simplemente

function foo() { 
    doSomethingElse(); 
} 

y foo se redefinirán.

Probablemente no sea la mejor solución, pero funciona.

+4

¡Muchas gracias por esta respuesta! Este fue el único que funcionó para mí también ... – bobo

+2

¡muchas gracias por esto! no es lo que estoy buscando, ¡pero es el único que funciona! –

+0

Tenía esta página abierta en un navegador en el que no estaba conectado a stackoverflow ... inicié sesión solo para poder votar esta respuesta. ¡Muchas gracias por esta solución! – RizJa

Cuestiones relacionadas