71

我有一个需要在 IE8 中检查的对象。我尝试了开发人员工具和console.log他们的 Firebug 等价物。但是,当我将对象输出到日志时:

console.log("Element: ", element);
console.log(element);

我只得到字符串

LOG: Element: [object Object]

而不是可点击、可检查的转储。

是否可以将对象转储到日志并检查其成员,就像在 Firebug 中一样?

我不能使用自制的 dump() 函数,因为我要检查的元素太大了,浏览器会在我身上崩溃。

4

11 回答 11

101

这是我发现有用的一种技术:

  • 打开开发者工具栏(按 F12)
  • 转到“脚本”选项卡
  • 单击“开始调试”按钮
  • 接下来,在控制台中输入“debugger”并回车。这应该触发一个断点。
  • 转到“观看”子选项卡
  • 单击显示“单击以添加...”的行并输入您要检查的变量。请注意,该变量必须是全局可用的。
  • 此时,您应该能够使用树状 UI 检查您的变量
  • 完成调试后,单击继续按钮(或按 F5)
于 2009-12-27T13:05:05.393 回答
93

有点离题(因为它不适用于 DOM 元素),但我发现使用JSON.stringify(object ) 来获取对象的 JSON 字符串非常容易阅读。

于 2009-12-30T21:44:48.610 回答
13

@Chris 用简单的解决方案评论了@Andy 的答案:用于console.dir(myObj)在 IE 的控制台中打印出所有详细信息。谢谢克里斯!

于 2012-12-10T18:53:08.720 回答
5

如果您正在处理讨厌的代码并且 console.log 不可用,请在控制台中尝试:

out = []; for (i in your_object) { out.push(i) } out.join("\n")
于 2012-08-02T11:57:42.557 回答
3

一个建议是使用Firebug-Lite:它包装了控制台 obj,您可以像在大多数 firebug 控制台中一样在 IE 中看到结果。希望这有帮助。

于 2011-08-11T19:27:58.857 回答
1

在您的页面中添加此标签:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>

事情会奏效。

它在我的系统上工作。

注意:请尝试此解决方案。

于 2016-07-15T06:07:11.457 回答
1

哈维出色答案的图片版本:

在此处输入图像描述

于 2017-04-21T11:49:05.103 回答
0

我知道这是一个非常古老的问题,但我刚才正在寻找这个问题的答案。如果不是绝对要求使用 IE 控制台(这不是很好,IMO),那么您可以考虑使用 Firebug Lite(http://getfirebug.com/firebuglite)。这不是一个完美的解决方案,您可能不想将该脚本推送到您的生产环境中,而且它的功能不如 Firebug,但是当您需要使用低端浏览器时,它非常好用IE。

于 2013-10-21T15:19:19.683 回答
0

有点笨重,但它适用于 DOM 对象:

 console.log( testNode.outerHTML.replace(testNode.innerHTML,"") ); 
于 2014-08-15T17:21:23.673 回答
0

将其转储到现有的 HMTL 元素中

我注意到 IE 11 在 1027 个字符后剥离了控制台行:-/ 当我有一个要转储的大对象(12,000 个字符)时,我将它转储到现有的 DIV-oder TextArea-Element 中,我可以从中复制内容。

var str = JSON.stringify(myObject);
$('#existing-element').text(str); // jQuery or
document.querySelector("#existing-element").innerHTML = str; // native JavaScript
于 2016-11-15T09:52:38.420 回答
-1

console.log(element.toString()) 可能是你的朋友......

于 2009-12-24T02:46:47.360 回答