2009-07-06 10 views
4

ChromeでJavascriptデバッガ(Ctrl + Shift + L)を開いて、コードでブレークポイントを設定するために使用しました。Chrome JSデバッガでは、オブジェクトのすべてのプロパティをどのように印刷するのですか?

これはFirebugとはかなり異なるインターフェースです(コマンドライン駆動です)ので、オブジェクトのすべてのプロパティを印刷するなどの簡単な操作を行う方法は不思議です。

私はこのようなオブジェクトがある場合:私は、ブレークポイントを設定し、オブジェクトを調べることができ

var opts = { 
    prop1: "<some><string/></some>", 
    prop2: 2, 
    prop3: [1,2,3] 
} 

を、私は唯一のバック単一のプロパティを取得するように見える、と私はプロパティが表示されますかわからないんだけど:

$ print for(var p in opts) p; 
prop1 

任意のアイデア:すべてのプロパティを取得しよう

$ print opts 
#<an Object> 

? 明らかに1つ以上のものがあります。

答えて

0

だから私が試したを使用することができますので、Chromeは、ECMA-スタイルネイティブJSONを持っており、それは私に何かを与える少なくとも:

$dir opts 
3 properties 
prop1: string (#11#) 
prop2: string (#12#) 
prop3: string (#13#) 

また、これは(それは私いくつかの値を与えるので、少し良い)動作しますが、それは長すぎるかどう文字列の終わりをカット:

$ print var s=[];for(var p in opts) { s.push(p + ":" + opts[p]); } s.join(","); 
prop1:<some><string/></some>,prop2:2,prop3:[object Object] 
0

Inspector(Ctrl+Shift+J)の下部にあるJavaScriptコンソールでコマンドラインを使用してみてください。それははるかにFirebugのような感じを持っています。

+0

私はインスペクタを使用してブレークポイントを設定するにはどうすればよいですか?私の問題は、実行を一時停止し、オブジェクトの値を検査したいということです。 –

6

あなたは "DIR" コマンドを使用して

JSON.stringify (opts); 
{"prop1":"<some><string/></some>","prop2":2,"prop3":[1,2,3]} 
+0

これはお勧めしますが、デバッガではうまく動作しないようです。 (ReferenceError:JSONが定義されていません) –

0

オブジェクト名をChromeデバッガのコマンドラインに入力するだけで、閲覧可能なリストを取得することができます。私の場合は、外部の文書に貼り付け/貼り付けできるすべてのプロパティとメソッドが必要でした。これが私の仕事:

for (a in opts) console.log(typeof (opts[a]) + ' :: ' + a); 

リターン:

string :: id 
string :: name 
number :: selectMode 
string :: url 
boolean :: multi 
object :: selectedRows 
object :: selectedValues 
function :: Load 
function :: _LoadInternal 
function :: _CreatePostElements 
...etc...