puis-je empêcher Chrome de tronquer des chaînes dans la console de développement?

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

Je veux vraiment l'objet complet, mais Chrome souhaite limiter le résultat à environ 80 caractères. Je ne vois rien dans les paramètres de la console qui pourrait changer cela.

jcollum
la source

Réponses:

43

J'ai récemment découvert que les outils de développement de Chrome avaient une copyfonction qui permet de copier dans le presse-papiers - sans troncature! Il permet également de sérialiser les objets en éléments JSON et DOM en HTML, directement dans le presse-papiers.

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

Comme j'essayais de copier une longue chaîne dans le presse-papiers pour une analyse ailleurs, cela répondait parfaitement à mes besoins

WickyNilliams
la source
3
c'est glissant; ne répond pas vraiment à la question cependant, devrait être un commentaire à la place
jcollum
2
+1 c'est tellement utile. Certes, cela ne répond pas techniquement à la question, mais le problème à l'origine de la question est résolu: comment obtenir le texte complet et non tronqué à partir de la console. Il suffit de le coller dans un éditeur de texte et vous êtes trié.
Theyetiman
Je suis dans Chrome: Uncaught ReferenceError: copie n'est pas défini
Arod
3
@ arod c'est seulement disponible dans la console, pas globalement
WickyNilliams
2
Cela fonctionne aussi dans Firefox.
Björn
16

console.dir(longstringhere) travaux.

copyça n'a pas marché pour moi non plus, ça disait ça undefined.

repos
la source
1
Pareil ici. 'console.copy' n'a pas fonctionné mais 'console.dir' a fonctionné. Tu as sauvé ma journée.
Betty
2
copyla fonction ne génère rien (c'est donc ce qui undefinedest attendu), mais copie l'argument dans la mémoire tampon de votre système, collez-le simplement ( ctrl-v) dans n'importe quel éditeur
nazikus
1
ne fonctionne pas ....
Yossi Shasho
2
Vous devez copier à partir de la console, par exemple placer un point d'arrêt où la valeur est, ouvrez console, tapez copy(yourVariable). En outre, ce n'est tout simplement copypasconsole.copy
WickyNilliams
1
Chaque fonction de JS renvoie non défini s'il n'est pas spécifié. Donc cela fonctionne réellement.
Atilkan
5

Ce comportement existe toujours dans la version de Chrome 37.0.2062.103.

Vous pouvez contourner ce problème lors du débogage en utilisant: document.write ('My Really Long Debug Text');

Chou d'eau
la source
37.0.2062.120 m sous Windows 7: pas d’ellipses.
mardi
Ne fonctionne plus ..
Totty.js
4

J'utilise les éléments suivants:

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

puis copiez le texte du champ d'édition.

Dexter Le Blanc Jr.
la source
Ceci est également tronqué
citoyen conn
2

Mettez à niveau Chrome vers la version 32 qui ne le fait plus, comme le montre cette image:

entrez la description de l'image ici

jcollum
la source
2
chrome canari v36 + ... il le fait toujours. ... mais maintenant ne montre pas la longueur. par exemple long string...ends here.
GBC
Vous êtes dans une version de chrome qui n'a pas encore été publiée. Cela ne se produit pas dans la v33 sur Ubuntu: imgur.com/RPCgR6f - m'as -tu invoqué parce que ma solution n'a pas résolu ton problème, même si tu es dans une version préliminaire?!
mardi
1
"Résoudre le problème. Exécuter une ancienne version du navigateur n'est pas possible" --- ce n'est pas une ancienne version du navigateur! Je suis à jour et à la v33 à Ubuntu. Mon Windows Box est à jour et c'est v34. Je ne sais pas d'où vous tirez v36. "cela ne se produit pas sur la v33" - et ce n'est pas le cas, comme le prouve la capture d'écran (à partir de la v33).
mardi
1
La principale conclusion est que ce bogue / comportement a été inséré après 33 ou 34.
gcb
1
C'est bien. Vous devriez soumettre un rapport de bogue. Étant donné que le courant libéré version de Chrome ne l' a pas, vous ne devriez pas me downvote pour dire la mise à jour vers la dernière sortie version de Chrome corrige elle. Et cela est vrai pour V34 sur Win7 et V33 sur Ubuntu.
mardi
2

Dans Chrome 58 (peut-être plus tôt), vous pouvez utiliser l' Store as Global Variableoption de menu du menu contextuel de n'importe quelle valeur de la console, imbriquée à n'importe quel niveau. Il attribue la valeur sélectionnée à une variable portant un nom unique, qui est immédiatement connecté à la console.

Je viens de l'essayer sur une valeur de 400 Ko!

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

Ando
la source
2

La longueur de la chaîne rendue à la console est limitée par programmation à l'intérieur de inspector.js. Il est défini sur 150 caractères par défaut. Vous ne pouvez pas appliquer de code CSS, car il est rendu à la console au format HTML. Le texte a déjà été tronqué.

Vous pouvez le changer mais cela demandera un peu de travail:

Outils nécessaires et utiles:

• ack (brass install install ack) ou ag. (pour rechercher des fichiers texte énormes très rapidement).

• paktools pour python. Pour décompresser les ressources chrome pour pouvoir les éditer. https://github.com/Magister/pak-tools .

• éditeur de texte de choix.

  1. cd ou naviguez dans n'importe quelle version de Chrome que vous avez. J'utilise Chromium à titre d'exemple, mais le chemin est le même sur les autres versions:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. Cloner ou télécharger les paktools. Cela vous permettra de décompresser les ressources chromées, de les éditer et de les remballer. J'ai placé le mien dans mon ~./binmais tu peux le mettre n'importe où. Les exemples refléteront mon chemin:

  3. Maintenant dans le Chrome/.../Chrome Framework.framework/Resouresdossier execute: python2 ~/.bin/unpack.py resources.paketcd ./resouces

  4. Vous allez devoir trouver où il se trouve. Les fichiers changent tout le temps et ce n'est donc jamais pareil. $ ag "static linkify"Cela m'a amené à 28542. J'ai modifié la fonction pour définir par défaut 2000 caractères, et également mis à jour le fichier css afin que je puisse faire défiler horizontalement dans la console.

  5. Maintenant, sortez du dossier de ressources que vous avez décompressé et inséré dans son dossier parent. Exécuter: python2 ~/.bin/pack.py resourceset le tour est joué. Redémarrez Chrome et vos devtools sont maintenant personnalisés.

AVERTISSEMENT: 6. L'équipe de devtools diffuse les mises à jour des versions du framework à votre insu. Et vous perdrez tous vos mods s’ils le font. Je le bloque en exécutant /Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstallet en tuant tous les démons de la distorsion, etc.

Fonctionne comme un charme.

entrez la description de l'image ici

Mod
la source