IE8 で JavaScript 変数をダンプするにはどうすればよいですか?
-
21-09-2019 - |
質問
IE8 で調べる必要があるオブジェクトがあります。開発者ツールを試してみましたが、 console.log
, 、Firebug に相当します。ただし、オブジェクトをログに出力すると、次のようになります。
console.log("Element: ", element);
console.log(element);
文字列だけを取得します
LOG: Element: [object Object]
クリックして調べられるダンプの代わりに。
Firebug のように、オブジェクトをログにダンプしてそのメンバーを調べることは可能ですか?
調べたい要素が大きすぎてブラウザがクラッシュしてしまうため、自家製の dump() 関数は使用できません。
解決
私が役に立ったテクニックを 1 つ紹介します。
- 開発者ツールバーを開きます (F12 キーを押します)。
- 「スクリプト」タブに移動します
- 「デバッグ開始」ボタンをクリックします
- 次に、コンソールに「debugger」と入力して Enter キーを押します。これによりブレークポイントがトリガーされるはずです。
- 「ウォッチ」サブタブに移動します
- 「クリックして追加...」という行をクリックし、調べたい変数を入力します。変数はグローバルに使用できる必要があることに注意してください。
- この時点で、ツリーのような UI で変数を調べることができるはずです。
- デバッグが完了したら、「続行」ボタンをクリックします (または F5 キーを押します)。
他のヒント
少し話題から外れますが (DOM 要素では機能しないため)、 JSON.stringify(オブジェクト) 非常に読みやすいオブジェクトの JSON 文字列を取得します。
console.dir(myObj)
:@クリスは、シンプルなソリューションでアンディの答え@コメントしました。おかげでクリス!
あなたは厄介なコードとはconsole.logを扱っている場合は使用できない場合は、コンソールでこれを試してください:
out = []; for (i in your_object) { out.push(i) } out.join("\n")
1つの提案は、 Firebugの-Liteのを使用することです。 これは、コンソールOBJをラップし、あなたは放火魔コンソールのほとんどのようにIEでの結果を見ることができます。 このヘルプを願っています。
あなたのページにこのタグを追加します:
<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>
そして、物事がうまくいくます。
私のシステムでその作業ます。
注:DOは、このソリューションを試してみてください。
これが本当に古い質問であることは承知していますが、ちょうど今これに対する答えを探していました。IE コンソールを使用することが絶対的な要件ではない場合 (これはあまり良くありません、IMO)、Firebug Lite の使用を検討することもできます (http://getfirebug.com/firebuglite)。これは完璧なソリューションではなく、そのスクリプトを本番環境にプッシュしたくないかもしれません。また、Firebug ほどフル機能ではありませんが、次のようなローエンドのブラウザを使用する必要がある場合には、非常に便利です。いえ。
Aは分厚いビットが、DOMオブジェクトのためにそれが動作ます:
console.log( testNode.outerHTML.replace(testNode.innerHTML,"") );
の既存のHMTL要素の
にそれをダンプ私は、IE 11は、1027個の文字の後に、コンソール回線を剥ぎ取るされて気づきました: - / 私はダンプ(12,000文字)に大きなオブジェクトを持っていたとき、私はTextAreaの要素、私はコンテンツをコピー可能性があります。
からオーデル既存DIV-にそれをダンプvar str = JSON.stringify(myObject);
$('#existing-element').text(str); // jQuery or
document.querySelector("#existing-element").innerHTML = str; // native JavaScript
はconsole.log(element.toString())ここではあなたの友人かもしれません...