web-dev-qa-db-fra.com

Comment copier la variable javascript surveillée dans Chrome?

J'ai mis un point d'arrêt en javascript et je teste du code avec Chrome. J'ai également ajouté une expression de montre pour la valeur.

Chrome se casse au point d'arrêt et affiche la valeur. Cependant, la valeur est très longue et ne l'affiche pas tout. Je déplace le séparateur de fenêtre vers la gauche mais il s'arrête au milieu de l'écran. Lorsque je double-clique sur la variable surveillée, il souhaite modifier l'expression. Lorsque je clique et glisse dessus, il sélectionne le texte visible, mais pas tout. Un clic droit ne fait rien.

Voilà ce que je vois

url: "m=mtgoxUSD&SubmitButton=Draw&r=&i=&c=0&s=&e=&Prev=&Next=&t=S&b=&a1=&m1=10&a2=&m2=25&x=0...

Je veux copier l'expression entière sans le ... à la fin. Comment puis je faire ça?

38
siamii

Voici ce que je fais.

Edit: Cela fonctionne dans les variables d'étendue qui se trouvent sous le panneau Expressions de surveillance.

  1. Double-cliquez sur la valeur pour passer en mode édition.

  2. Ctrl + A (windows) ou Cmd + A (mac) pour sélectionner la valeur entière.

  3. Ctrl + C (ou Cmd + C) pour copier.

12
Ben

J'ajoute une réponse tardive après près de 3 ans, car avec les outils de développement Chrome Chrome actuels, aucune approche ne fonctionne si vous avez un tableau ou même juste une propriété d'objet imbriquée dans cette variable, en suivant les deux réponses vous finirez par copier une chaîne avec beaucoup de Array[size] ou Object chaînes entrelacées dans la valeur réelle de l'objet, complètement inutiles pour les hiérarchies d'objets complexes.

Les approches suggérées sont correctes si vous avez juste besoin de parcourir manuellement la valeur, mais pas si vous devez la copier comme demandé dans la question.

Ce que je recommande à la place, surtout si vous avez besoin de copier la valeur surveillée pour l'utiliser comme contenu d'une nouvelle variable, est de la vider sur la console après l'avoir stringifiée.

Affichez la console Javascript et tapez:

console.log(JSON.stringify(my_watched_var))

De cette façon, la structure complète sera affichée en pur Javascript, d'une manière entièrement réutilisable/copiable.

45

Affichez la console, puis tapez l'expression à afficher et appuyez sur. Vous verrez toute la valeur et vous pourrez la sélectionner et la copier.

Pendant que le débogueur est suspendu, cela fonctionne même avec des expressions qui impliquent des variables locales qui sont dans la portée au point d'exécution en cours.

27
Łukasz Nojek

La ligne de commande de la console Chrome DevTools possède une fonction de "copie" intégrée:

copy(my_variable)

Si la valeur de my_variable n'est pas une chaîne, elle sera automatiquement convertie en JSON. La chaîne résultante est laissée dans le presse-papiers du système pour être collée.

Voici le doc de référence .

25
emackey

Regardez cette réponse " Existe-t-il un moyen de développer automatiquement des objets dans Chrome Dev Tools? ", il itère à travers toutes les propriétés d'un objet et il montre la hiérarchie complète y compris le type de données et les valeurs.

Utile si vous devez comparer deux états d'une application.

1
Matteo Conta

Ce lien a une description incroyable: https://scottwhittaker.net/chrome-devtools/2016/02/29/chrome-devtools-copy-object.html

Étapes: 1) Cliquez avec le bouton droit sur la variable et sélectionnez "Ajouter comme variable globale" 2) Dans la console, écrivez copier (temp1) 3) Ouvrez n'importe quel éditeur et collez

0
Soham Mehta