2012-03-22 20 views
29

javascriptにブレークポイントを置き、Chromeでいくつかのコードをテストしています。私はまた、値のための時計式を追加しました。Chromeで監視されているjavascript変数をコピーするにはどうすればよいですか?

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... 

を見たものです。どうやってやるの?

答えて

9

私はこれをしています。

編集:これは、ウォッチ式パネルの下にあるスコープ変数で機能します。

  1. 編集モードに切り替えるには、値をダブルクリックします。

  2. Ctrl + A(windows)またはCmd + A(mac)を押して値全体を選択します。

  3. Ctrl + C(またはCmd + C)をコピーします。

+1

ダブルクリックすると、監視されている式変数、つまり値が – siamii

+3

aaaahではなく、urlが編集されます。申し訳ありませんが、あなたの投稿を誤読します。これはスコープ変数セクションで行います。そこに動作します.. – Ben

+1

ありがとう、それは十分です、それは範囲変数セクション – siamii

27

コンソールを表示し、表示する式を入力してを押します。あなたは全体の価値を見て、それを選択してコピーすることができます。

デバッガが一時停止している間、現在の実行ポイントでスコープ内にあるローカル変数を含む式でも機能します。

28

現在のChrome Dev Toolsでは、配列や、その変数にネストされたObjectプロパティだけを持っていてもどちらのアプローチもうまくいくわけではありません。 Array[size]またはObject文字列が実際のオブジェクト値にインターリーブされた文字列をコピーして、複雑なオブジェクト階層ではまったく役に立たない。

値を手動で移動するだけでよい場合は、問題の要求通りにコピーする必要がない場合は、提案された方法は問題ありません。

私は新しい変数の内容としてそれを使用するために監視された値をコピーする必要がある場合は特に、それが文字列化された後にコンソールにダンプすることをお勧めします。

はJavaScriptコンソールとタイプを表示:

console.log(JSON.stringify(my_watched_var)) 

この方法で完全な構造は、純粋なJavascriptを、コピー可能/完全に再利用可能な形で表示されます。

+7

文字列をクリップボードに直接コピーする 'console.log()'の代わりに 'copy()'を使うことでさらに改善できると思います。 – hdgarrood

+0

Nice!は、変数の各プロパティ間に改行を追加するために、コピーした部分を少しでもフォーマットできればさらに良いでしょう。私はnotepad ++を使ってそれをフォーマットすることができました。すべてを置換する "、" with "、\ r \ n" – AXMIM

+1

'copy()'もFirefoxで動作しました。 :) – cxw

1

この回答は "Is there a way to auto expand objects in Chrome Dev Tools?"です。オブジェクトのすべてのプロパティを繰り返し処理し、データ型と値を含む完全な階層を表示します。

アプリケーションの2つの状態を比較する必要がある場合に便利です。

16

クロームデベロッパーツールコンソールコマンドラインは内蔵の 『コピー』機能があります。

copy(my_variable) 

my_variableの値が文字列でない場合には、自動的にJSONに変換されます。結果の文字列は貼り付けのためにシステムクリップボードに残されます。

ここにはreference docがあります。

+0

これは特に長い文字列 – lbsweek

関連する問題