如何在IE8中转储JavaScript变量?

时间:2009-12-24 02:32:25

标签: javascript internet-explorer-8 console firebug ie-developer-tools

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

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

我只收到字符串

LOG: Element: [object Object]

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

是否可以将对象转储到Log并检查其成员,例如Firebug?

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

11 个答案:

答案 0 :(得分:101)

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

  • 打开开发人员工具栏(点击F12)
  • 转到“脚本”标签
  • 点击“开始调试”按钮
  • 接下来,在控制台中输入“debugger”并按Enter键。这应该触发一个断点。
  • 转到“观看”子标签
  • 点击显示“点击添加...”的行,然后输入您要检查的变量。请注意,变量必须全局可用。
  • 此时,您应该能够使用树状UI检查变量
  • 完成调试后,单击继续按钮(或按F5)

答案 1 :(得分:92)

有点偏离主题(因为它不适用于DOM元素)但我发现使用JSON.stringify(object)获取对象的JSON字符串非常方便可读。

答案 2 :(得分:13)

@Chris用简单的解决方案评论了@Andy的回答:使用console.dir(myObj)获取IE中控制台中打印的所有细节。谢谢克里斯!

答案 3 :(得分:5)

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

out = []; for (i in your_object) { out.push(i) } out.join("\n")

答案 4 :(得分:3)

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

答案 5 :(得分:1)

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



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

事情会奏效。

它在我的系统上工作。

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

答案 6 :(得分:1)

Xavi的优秀答案的图片版本:

enter image description here

答案 7 :(得分:0)

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

答案 8 :(得分:0)

有点粗巧,但它适用于DOM对象:

 console.log( testNode.outerHTML.replace(testNode.innerHTML,"") ); 

答案 9 :(得分:0)

将其转储到现有的HMTL元素

我注意到IE11在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

答案 10 :(得分:-1)

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