How to copy watched javascript variable in Chrome?

24,220

Solution 1

Here's what I do.

Edit: This works in the Scope Variables which is below the Watch Expressions panel.

  1. Double click on the value to switch to edit mode.

  2. Ctrl+A (windows) or Cmd+A (mac) to select the entire value.

  3. Ctrl+C (or Cmd+C) to copy.

Solution 2

I'm adding a late answer after nearly 3 years because with the current Chrome Dev Tools, neither approach work if you have an Array or even just a nested Object property in that variable, following both answers you'll just end up copying a string with a lot of Array[size] or Object strings interleaved in the actual object value, completely useless for complex object hierarchies.

The suggested approaches are ok if you just need to manually navigate through the value but not if you need to copy it as requested in the question.

What i recommend instead, especially if you need to copy the watched value to use it as the content of a new variable, is to dump it to console after it has been stringified.

Show the Javascript console and type:

console.log(JSON.stringify(my_watched_var))

This way the complete structure will be displayed in pure Javascript, a fully reusable/copyable way.

Solution 3

Chrome DevTools' console command-line has a built-in "copy" function:

copy(my_variable)

If the value of my_variable is not a string, it will automatically be converted to JSON. The resulting string is left on the system clipboard for pasting.

Here's the reference doc.

Solution 4

Show the console, then type the expression to be displayed and press . You'll see whole value and you'll be able to select and copy it.

While the debugger is paused, this works even with expressions that involve local variables that are in scope at the current point of execution.

Solution 5

This link has amazing descripion: https://scottwhittaker.net/chrome-devtools/2016/02/29/chrome-devtools-copy-object.html

Steps: 1) Right click variable and select "Add as Global Variable" 2) In the console, write copy(temp1) 3) Open any editor and paste

Share:
24,220
siamii
Author by

siamii

Updated on July 09, 2022

Comments

  • siamii
    siamii almost 2 years

    I put a breakpoint in javascript and am testing some code with Chrome. I also added a watch expression for the value.

    Chrome breaks at the breakpoint and shows the value. However the value is very long, and it doesn't display it all. I move the window separator to the left but it stops at mid screen. When I double click on the watched variable it wants to edit the expression. When I single click and drag on it, it selects the visible text, but not all. Right clicking does nothing.

    This is what I see

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

    I want to copy the whole expression without the ... in the end. How can I do that?

  • siamii
    siamii about 12 years
    Double clicking edits the watched expression variable, i.e. url, not the value
  • Ben
    Ben about 12 years
    aaaah, sorry, mis-read your post.. I do that in the Scope Variables section. Works there..
  • siamii
    siamii about 12 years
    Thanks, that's good enough, it works in the scope variables section
  • victorvartan
    victorvartan over 11 years
    I think the correct answer is the one that @L.N. gave, because in the Scope Variables you can only copy the values of the variables, so if you have to copy values of expressions you must use the console as he said.
  • hdgarrood
    hdgarrood almost 9 years
    I think you could further improve this by using copy() instead of console.log(), which copies a string straight to your clipboard.
  • AXMIM
    AXMIM over 8 years
    Nice!, would be even better if it could format the copied pieces at little to add line break between each properties of the variable. I was able to format it using notepad ++. Replace all "," with ",\r\n".
  • cxw
    cxw almost 8 years
    copy(<string variable>) also worked for me in Firefox. :)
  • lbsweek
    lbsweek over 7 years
    this helped for me especially for long string
  • morloch
    morloch over 7 years
    @AXMIM you can do this using stringify, e.g. JSON.stringify(my_watched_var, null, 2)
  • Chaim Eliyah
    Chaim Eliyah about 6 years
    this works! I find it very upsetting that you cannot get a JSON object as JSON from a pure JavaScript language/debugger without calling JSON.stringify in the console, but </kvetch>
  • hocikto
    hocikto over 5 years
    only way to get it if you have a long string. Using accepted answer does not help, it says 'String is too long to edit'
  • TetraDev
    TetraDev over 5 years
    Amazing, I did not know this function even existed!
  • Soham Mehta
    Soham Mehta over 4 years
    This link has amazing descripion: scottwhittaker.net/chrome-devtools/2016/02/29/… Steps: 1) Right click variable and select "Add as Global Variable" 2) In the console, write copy(temp1) 3) Open any editor and paste
  • Anatoly
    Anatoly almost 3 years
    Up to me, this should be the accepted answer