如何在Chrome中复制观看的javascript变量?

sia*_*mii 37 javascript debugging google-chrome copy-paste

我在javascript中设置了断点,并使用Chrome测试了一些代码.我还为该值添加了一个监视表达式.

Chrome会在断点处中断并显示该值.但是值很长,并且不会全部显示.我将窗口分隔符向左移动,但它在屏幕中间停止.当我双击被监视的变量时,它想要编辑表达式.当我单击并拖动它时,它会选择可见文本,但不是全部.右键单击无效.

这就是我所看到的

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

我想复制整个表达式而不是...最终.我怎样才能做到这一点?

Umb*_*ndi 42

我在近3年后添加了一个迟到的答案,因为使用当前的Chrome Dev Tools,如果你有一个数组甚至只是该变量中的嵌套对象属性,这两种方法都不起作用,在这两个答案之后,你最终会复制一个字符串在实际对象值中有很多 Array[size]Object字符串交错,对于复杂的对象层次结构完全没用.

如果您只需要手动浏览值,建议的方法就可以了,但如果您需要按照问题中的要求进行复制,则不行.

我推荐的,特别是如果您需要复制监视值以将其用作新变量的内容,则在将其转换为字符串后将其转储到控制台.

显示Javascript控制台并键入:

console.log(JSON.stringify(my_watched_var))
Run Code Online (Sandbox Code Playgroud)

这样,完整的结构将以纯Javascript显示,这是一种完全可重用/可复制的方式.

  • 我认为你可以通过使用`copy()`而不是`console.log()`进一步改进这一点,它将字符串直接复制到剪贴板. (10认同)
  • `copy(<string variable>)`在Firefox中也适用于我.:) (2认同)

Łuk*_*jek 27

显示控制台,然后键入要显示的表达式,然后按.您将看到整体价值,您将能够选择并复制它.

当调试器暂停时,这甚至适用于涉及当前执行点范围内的局部变量的表达式.


ema*_*key 24

Chrome DevTools的控制台命令行具有内置的"复制"功能:

copy(my_variable)
Run Code Online (Sandbox Code Playgroud)

如果值my_variable不是字符串,它将自动转换为JSON.生成的字符串将保留在系统剪贴板上以进行粘贴.

这是参考文档.

  • 这对我特别有帮助 (2认同)

Ben*_*Ben 11

这就是我的工作.

编辑:这适用于Watch Expressions面板下方的Scope Variables.

  1. 双击该值以切换到编辑模式.

  2. 按Ctrl + A(窗口)或Cmd + A(mac)选择整个值.

  3. 按Ctrl + C(或Cmd + C)进行复制.

  • aaaah,抱歉,误读了你的帖子..我在Scope Variables部分中这样做了.在那里工作.. (3认同)
  • 我认为正确的答案是@LN给出的答案,因为在范围变量中你只能复制变量的值,所以如果你必须复制表达式的值,你必须使用控制台,如他所说. (3认同)
  • 双击编辑监视的表达式变量,即url,而不是值 (2认同)