¿Puedo evitar que Chrome trunca cadenas en la consola de desarrollo?


47
> ary = new Array('test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test.');
> JSON.stringify(ary)
"["test msg kinda long but gets the point across and such and it shows ellipsises... (length: 116)"

Realmente quiero el objeto completo, pero Chrome quiere recortar el resultado a unos 80 caracteres. No veo nada en la configuración de la consola que pueda cambiar esto.

Respuestas:


43

Recientemente descubrí que las herramientas de desarrollo de Chrome tienen una copyfunción que copia al portapapeles, ¡sin truncamiento! Prácticamente también serializa objetos a elementos JSON y DOM a HTML, directamente al portapapeles.

copy(someLongString); // no truncation!
copy({ foo : true }); // JSON
copy(someDOMElement); // HTML

Como estaba tratando de copiar una cadena larga al portapapeles para su análisis en otro lugar, esto satisfizo perfectamente mis necesidades


3
eso es resbaladizo; sin embargo, realmente no responde la pregunta, debería ser un comentario en su lugar
jcollum

2
+1 esto es muy útil. De acuerdo, técnicamente no responde la pregunta, pero resuelve el problema que causa la pregunta: cómo obtener el texto completo y no truncado de la consola. Simplemente pégalo en un editor de texto y estarás ordenado.
theyetiman

Llegué a Chrome: Error de referencia no
capturado

3
@arod solo está disponible en la consola, no globalmente
WickyNilliams

2
Esto también funciona en Firefox.
Björn

16

console.dir(longstringhere) trabajos.

copytampoco funcionó para mí, decía que sí undefined.


1
Igual que aquí. 'console.copy' no funcionó pero 'console.dir' funcionó. Salvaste mi día.
Betty

2
copyfunción no se nada de salida (por lo tanto undefinedse espera), en su lugar copias argumento para su sistema de memoria intermedia, justo en la pasta ( ctrl-v) en cualquier editor
nazikus

1
no funciona ....
Yossi Shasho

2
Debe copiar desde la consola, por ejemplo, colocar un punto de interrupción donde esté el valor, abrir la consola, escribir copy(yourVariable). Además, simplemente copyno esconsole.copy
WickyNilliams

1
Cada función en JS devuelve indefinido si no se especifica. Entonces realmente funciona.
atilkan

5

Este comportamiento todavía existe en la versión de Chrome 37.0.2062.103.

Puede solucionar esto durante la depuración utilizando: document.write ('Mi texto de depuración realmente largo');


37.0.2062.120 m en Windows 7: sin puntos suspensivos.
jcollum

Ya no funciona ..
Totty.js

4

Yo uso lo siguiente:

var text = 'a really long string';
window.prompt("Copy to clipboard", text);

luego copie el texto del campo de edición.


Esto también está truncado
ciudadano conn

2

Actualice Chrome a la versión 32 que ya no hace esto, como se muestra en esta imagen:

ingrese la descripción de la imagen aquí


2
Chrome canary v36 + ... todavía lo hace. ... pero ahora no muestra la longitud. por ej long string...ends here.
gcb

Estás en una versión de Chrome que aún no se ha lanzado. No está sucediendo en v33 en Ubuntu: imgur.com/RPCgR6f : ¿me votó en contra porque mi solución no solucionó su problema a pesar de que está en una versión preliminar?
jcollum

1
"Resuelve el problema. No es posible ejecutar una versión antigua del navegador" --- ¡no es una versión antigua del navegador! Estoy actualizado y en v33 en ubuntu. Mi ventana de Windows está actualizada y es v34. No sé de dónde sacas la v36. "no sucede en v33", y no sucede, lo que demuestra la captura de pantalla (de v33).
jcollum

1
la conclusión es que este error / comportamiento se insertó de nuevo después de 33 o 34.
gcb

1
Eso es bueno. Debe enviar un informe de error. Dado que la versión actual lanzada de Chrome no lo tiene, no debería desestimarme por decir que la actualización a la última versión lanzada de Chrome lo arregla. Y eso es cierto para V34 en Win7 y V33 en Ubuntu.
jcollum

2

En Chrome 58 (tal vez antes) puede usar la Store as Global Variableopción de menú en el menú contextual de cualquier valor en la consola, anidado en cualquier nivel. Asigna el valor seleccionado a una variable con un nombre único, que se registra inmediatamente en la consola.

¡Acabo de probarlo con un valor de 400 KB!

Fuente: https://stackoverflow.com/a/41726364/250838


2

La longitud de la cadena que se representa en la consola está limitada programáticamente dentro de inspector.js. Está configurado en 150 caracteres por defecto. No hay CSS que pueda aplicar porque se representa en la consola como HTML. El texto ya ha sido truncado.

Puede cambiarlo, pero tomará un poco de trabajo:

Herramientas necesarias y útiles:

• ack (breck install ack) o ag. (para buscar archivos de texto enormes realmente rápido).

• paktools para python. Para desempaquetar los recursos de Chrome para poder editarlos. https://github.com/Magister/pak-tools .

• editor de texto de elección.

  1. cd o navega a cualquier versión de Chrome que tengas. Estoy usando Chromium como ejemplo, pero la ruta es la misma en otras versiones:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. Clone o descargue las paktools. Esto le permitirá descomprimir los recursos de Chrome, editarlos y luego volver a empaquetarlos. Puse el mío en mi ~./binpero puedes ponerlos en cualquier lugar. Los ejemplos reflejarán mi camino:

  3. Ahora en la Chrome/.../Chrome Framework.framework/Resourescarpeta ejecutar: python2 ~/.bin/unpack.py resources.pakycd ./resouces

  4. Tendrás que encontrar dónde está. Los archivos cambian todo el tiempo y nunca es lo mismo. $ ag "static linkify"Eso me llevó a 28542. Modifiqué la función por defecto a 2000 caracteres, y también actualicé el CSS para poder desplazarme horizontalmente en la consola.

  5. ahora cd fuera de la carpeta de recursos que desempaquetó y en su padre. Ejecutar: python2 ~/.bin/pack.py resourcesy listo. Reinicie Chrome y sus herramientas de desarrollo ahora son personalizadas.

ADVERTENCIA: 6. El equipo de devtools envía actualizaciones de las versiones del framework sin que usted lo sepa. Y perderás todas tus modificaciones si lo hacen. Lo bloqueo ejecutando /Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstally matando a todos los demonios keystone, etc.

Funciona de maravilla.

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.