kann ich verhindern, dass Chrome Zeichenfolgen in der Entwicklungskonsole abschneidet?

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

Ich möchte wirklich das gesamte Objekt, aber Chrome möchte das Ergebnis auf etwa 80 Zeichen kürzen. Ich sehe in den Konsoleneinstellungen nichts, was dies ändern würde.

jcollum
quelle

Antworten:

42

Ich habe kürzlich festgestellt, dass die Chrome-Entwickler-Tools eine copyFunktion haben, die in die Zwischenablage kopiert - ohne Kürzung! Handlich serialisiert es auch Objekte zu JSON- und DOM-Elementen zu HTML, direkt in die Zwischenablage.

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

Da ich versucht habe, eine lange Zeichenfolge zur Analyse an eine andere Stelle in die Zwischenablage zu kopieren, hat dies meinen Anforderungen perfekt entsprochen

WickyNilliams
quelle
3
das ist glatt; Beantwortet die Frage allerdings nicht wirklich, sollte stattdessen ein Kommentar sein
jcollum
2
+1 das ist so nützlich. Zugegeben, es beantwortet die Frage technisch nicht, löst jedoch das Problem, bei dem die Frage gestellt wird - wie der vollständige, nicht abgeschnittene Text von der Konsole abgerufen wird. Fügen Sie es einfach in einen Texteditor ein und Sie sind sortiert.
Sie sind
Ich habe in Chrome: Uncaught ReferenceError: Kopie ist nicht definiert
Arod
3
@ Arod es ist nur in der Konsole verfügbar, nicht gobally
WickyNilliams
2
Dies funktioniert auch in Firefox.
Björn
16

console.dir(longstringhere) funktioniert.

copyhat auch bei mir nicht funktioniert, es hieß es undefined.

ausruhen
quelle
1
Hier gilt das gleiche. 'console.copy' hat nicht funktioniert, aber 'console.dir' hat funktioniert. Du hast meinen Tag gerettet.
Betty
2
copyDie Funktion gibt nichts aus (daher undefinedwird dies erwartet), sondern kopiert das Argument in den ctrl-v
Systempuffer. Fügen Sie
1
funktioniert nicht ....
Yossi Shasho
2
Sie müssen von der Konsole kopieren, z. B. einen Haltepunkt setzen, an dem der Wert lautet, Konsole öffnen, eingeben copy(yourVariable). Auch ist es einfach copynichtconsole.copy
WickyNilliams
1
Jede Funktion in JS gibt undefiniert zurück, wenn nichts angegeben ist. Also funktioniert es tatsächlich.
Atilkan
5

Dieses Verhalten ist in Chrome Version 37.0.2062.103 weiterhin vorhanden.

Sie können dieses Problem beim Debuggen umgehen, indem Sie Folgendes verwenden: document.write ('My Really Long Debug Text');

Wasserkohl
quelle
37.0.2062.120 m unter Windows 7: keine Ellipsen.
jcollum
Funktioniert nicht mehr ..
Totty.js
4

Ich benutze folgendes:

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

Kopieren Sie dann den Text aus dem Bearbeitungsfeld.

Dexter Le Blanc Jr.
quelle
Dies ist auch verkürzt
Bürger conn
2

Aktualisieren Sie Chrome auf Version 32, die dies nicht mehr tut (siehe Abbildung):

Bildbeschreibung hier eingeben

jcollum
quelle
2
chrome canary v36 + ... das macht es immer noch. ... zeigt aber jetzt nicht die Länge. zb long string...ends here.
GCB
Sie befinden sich in einer noch nicht veröffentlichten Chrome-Version. Es passiert nicht in Version 33 unter Ubuntu: imgur.com/RPCgR6f - haben Sie mich abgelehnt, weil meine Lösung Ihr Problem nicht behoben hat, obwohl Sie eine Vorabversion haben ?!
jcollum
1
"Lösen Sie das Problem. Eine alte Browserversion ist nicht möglich." --- Es ist keine alte Browserversion! Ich bin auf dem neuesten Stand und bei v33 in Ubuntu. Meine Windows-Box ist auf dem neuesten Stand und es ist v34. Ich weiß nicht, woher Sie V36 bekommen. "es passiert nicht auf v33" - und es nicht, was der screenshot (von v33) beweist.
Jcollum
1
der schlüssel zum mitnehmen ist, dass dieser fehler / dieses verhalten nach 33 oder 34 wieder eingefügt wurde.
gcb
1
Das ist schön. Sie sollten einen Fehlerbericht einreichen. Da die aktuell veröffentlichte Version von Chrome diese nicht enthält, sollten Sie mich nicht dafür stören, dass ich das Update auf die neueste veröffentlichte Version von Chrome behebt. Und das gilt für V34 unter Win7 und V33 unter Ubuntu.
jcollum
2

In Chrome 58 (möglicherweise früher) können Sie Store as Global Variabledie Menüoption im Kontextmenü eines beliebigen Werts in der Konsole verwenden, der auf einer beliebigen Ebene verschachtelt ist. Er weist den ausgewählten Wert einer Variablen mit einem eindeutigen Namen zu, der sofort in der Konsole protokolliert wird.

Habe es gerade mit einem Wert von 400 KB versucht!

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

Ando
quelle
2

Die Länge der Zeichenfolge, die an die Konsole gerendert wird, ist programmgesteuert in inspector.js begrenzt. Es ist standardmäßig auf 150 Zeichen eingestellt. Sie können kein CSS anwenden, da es als HTML auf der Konsole gerendert wird. Der Text wurde bereits abgeschnitten.

Du kannst es ändern, aber es wird ein bisschen Arbeit kosten:

Notwendige und hilfreiche Tools:

• ack oder ag. (Zum schnellen Durchsuchen großer Textdateien).

• Paktools für Python. Zum Entpacken der Chrome-Ressourcen, um sie bearbeiten zu können. https://github.com/Magister/pak-tools .

• Texteditor Ihrer Wahl.

  1. cd oder navigiere zu einer beliebigen Chrome-Version. Ich verwende Chromium als Beispiel, aber der Pfad ist bei anderen Versionen derselbe:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. Klone oder lade die paktools herunter. Auf diese Weise können Sie die Chrome-Ressourcen entpacken, bearbeiten und anschließend neu packen. Ich habe meine in meine gelegt, ~./binaber du kannst sie überall ablegen. Beispiele werden meinen Weg widerspiegeln:

  3. Jetzt im Chrome/.../Chrome Framework.framework/ResouresOrdner ausführen: python2 ~/.bin/unpack.py resources.pakundcd ./resouces

  4. Sie müssen herausfinden, wo es ist. Die Dateien ändern sich ständig und daher ist es nie dasselbe. $ ag "static linkify"Das hat mich dazu gebracht 28542. Ich habe die Funktion auf den Standardwert von 2000 Zeichen geändert und das CSS aktualisiert, damit ich in der Konsole einen horizontalen Bildlauf durchführen kann.

  5. Jetzt cd wieder aus dem Ordner resouces, den Sie entpackt haben, und in den übergeordneten Ordner. Execute: python2 ~/.bin/pack.py resourcesund voila. Starten Sie Chrome neu und Ihre Devtools sind jetzt benutzerdefiniert.

WARNUNG: 6. Das devtools-Team veröffentlicht Updates der Framework-Versionen, ohne dass Sie es wissen. Und du wirst alle deine Mods verlieren, wenn sie es tun. Ich blockiere es, indem ich /Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstallalle Keystone-Deamons usw. ausführe und töte.

Klappt wunderbar.

Bildbeschreibung hier eingeben

Mod
quelle