posso impedire a Chrome di troncare le stringhe nella console di sviluppo?


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)"

Voglio davvero l'intero oggetto, ma Chrome vuole tagliare il risultato a circa 80 caratteri. Non vedo nulla nelle impostazioni della console che cambierebbe questo.

Risposte:


43

Di recente ho scoperto che gli strumenti di sviluppo di Chrome hanno una copyfunzione che viene copiata negli Appunti - senza troncamento! Facilmente serializza anche oggetti su elementi JSON e DOM in HTML, direttamente negli appunti.

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

Dal momento che stavo cercando di copiare una lunga stringa negli appunti per l'analisi altrove, questo ha soddisfatto perfettamente le mie esigenze


3
è lucido; in realtà non risponde alla domanda, dovrebbe invece essere un commento
jcollum,

2
+1 questo è così utile. Concesso che tecnicamente non risponde alla domanda ma risolve il problema che causa la domanda: come ottenere il testo completo e non troncato dalla console. Basta incollarlo in un editor di testo e sei ordinato.
theyetiman,

Sono arrivato in Chrome: Uncaught ReferenceError: la copia non è definita
prodotta l'

3
@arod è disponibile solo nella console, non
gobally

2
Funziona anche con Firefox.
Björn,

16

console.dir(longstringhere) lavori.

copynon ha funzionato neanche per me, diceva che lo è undefined.


1
Anch'io. 'console.copy' non ha funzionato ma 'console.dir' ha funzionato. Mi hai salvato la giornata.
Betty,

2
copyla funzione non genera nulla (quindi undefinedè previsto), invece copia l'argomento nel buffer di sistema, basta incollarlo ( ctrl-v) in qualsiasi editor
nazikus

1
non funziona ....
Yossi Shasho,

2
È necessario copiare dalla console, ad esempio posizionare un punto di interruzione in cui il valore è, aprire la console, digitare copy(yourVariable). Inoltre, è solo copynonconsole.copy
WickyNilliams

1
Ogni funzione in JS restituisce non definita se non specificata. Quindi funziona davvero.
Atilkan,

5

Questo comportamento esiste ancora nella versione 37.0.2062.103 di Chrome.

Puoi aggirare questo problema durante il debug usando: document.write ('My Really Long Debug Text');


37.0.2062.120 m su Windows 7: senza ellissi.
jcollum,

Non funziona più ..
Totty.js,

4

Io uso il seguente:

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

quindi copia il testo dal campo di modifica.


Anche questo è troncato
cittadino conn

2

Aggiorna Chrome alla versione 32 che non funziona più, come mostrato da questa immagine:

inserisci qui la descrizione dell'immagine


2
chrome canary v36 + ... lo fa ancora. ... ma ora non mostra la lunghezza. es long string...ends here.
gcb,

Sei in una versione di Chrome che non è ancora stata rilasciata. Non sta succedendo nella v33 su Ubuntu: imgur.com/RPCgR6f - mi hai sottovalutato perché la mia soluzione non ha risolto il tuo problema anche se sei in una versione pre-release ?!
jcollum,

1
"risolvi il problema. Non è possibile eseguire una vecchia versione del browser" --- non è una vecchia versione del browser! Sono aggiornato e alla v33 in Ubuntu. La mia finestra di Windows è aggiornata ed è v34. Non so da dove stai ricevendo la v36. "non succede su v33" - e non lo fa, come dimostra lo screenshot (da v33).
jcollum,

1
la chiave da asporto è che questo bug / comportamento è stato reinserito dopo 33 o 34.
gcb

1
Bello. È necessario inviare una segnalazione di bug. Poiché la corrente rilasciata versione di Chrome non ce l'ha, non si dovrebbe mi downvote per dire l'aggiornamento alla più recente rilasciato la versione di correzioni Chrome IT. E questo vale per V34 su Win7 e V33 su Ubuntu.
jcollum,

2

In Chrome 58 (forse in precedenza) puoi utilizzare l' Store as Global Variableopzione di menu nel menu contestuale di qualsiasi valore nella console, nidificato a qualsiasi livello. Assegna il valore selezionato a una variabile con un nome univoco, che viene immediatamente registrato nella console.

L'ho appena provato con un valore di 400 KB!

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


2

La lunghezza della stringa che viene renderizzata sulla console è limitata programmaticamente all'interno di inspector.js. È impostato su 150 caratteri per impostazione predefinita. Non è possibile applicare CSS perché viene eseguito il rendering sulla console come HTML. Il testo è già stato troncato.

Puoi cambiarlo ma ci vorrà un po 'di lavoro:

Strumenti necessari e utili:

• ack (brew install ack) o ag. (per la ricerca di file di testo di grandi dimensioni molto velocemente).

• paktools per Python. Per decomprimere le risorse di Chrome per poterle modificare. https://github.com/Magister/pak-tools .

• editor di testo preferito.

  1. cd o navigare in qualsiasi versione di Chrome che hai. Sto usando Chromium come esempio ma il percorso è lo stesso su altre versioni:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. Clona o scarica i paktools. Ciò consentirà di decomprimere le risorse di Chrome, modificarle e quindi reimballarle. Ho messo il mio nel mio ~./binma puoi metterli ovunque. Gli esempi rispecchieranno il mio percorso:

  3. Ora nella Chrome/.../Chrome Framework.framework/Resourescartella esegui: python2 ~/.bin/unpack.py resources.pakecd ./resouces

  4. Dovrai trovare dove si trova. I file cambiano continuamente e quindi non è mai lo stesso. $ ag "static linkify"Questo mi ha portato a 28542. Ho modificato la funzione sui 2000 caratteri predefiniti e ho anche aggiornato il CSS in modo da poter scorrere orizzontalmente nella console.

  5. ora riavvia il cd dalla cartella resuce che hai decompresso e nel suo genitore. Eseguire: python2 ~/.bin/pack.py resourcese voilà. Riavvia Chrome e i tuoi strumenti sono ora personalizzati.

ATTENZIONE: 6. Il team devtools distribuisce gli aggiornamenti delle versioni del framework senza che tu lo sappia. E perderai tutte le tue mod se lo fanno. Lo blocco eseguendo /Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstalle uccidendo tutti i demoni keystone ecc.

Funziona come un fascino.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.