当前位置:  开发笔记 > 编程语言 > 正文

如何在IE8中转储JavaScript变量?

如何解决《如何在IE8中转储JavaScript变量?》经验,为你挑选了4个好方法。

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

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

我只收到字符串

LOG: Element: [object Object]

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

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

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



1> Xavi..:

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

打开开发人员工具栏(点击F12)

转到"脚本"选项卡

单击"开始调试"按钮

接下来,在控制台中输入"debugger"并按Enter键.这应该触发一个断点.

转到"观察"子选项卡

单击显示"单击以添加..."的行,然后输入您要检查的变量.请注意,变量必须全局可用.

此时,您应该能够使用树状UI检查变量

完成调试后,单击继续按钮(或按F5键)


我敢打赌微软开发者讨厌这个.

2> 小智..:

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


**PROTIP**:使用`JSON.stringify(obj,null,"\ t")`来使`stringify`的输出更具可读性.
你也可以使用console.dir(); 在ie中实现这种行为.
该解决方案是对问题的更好回应.顺便说一句,如果您的IE不支持JSON对象,您可以使用http://www.JSON.org/json2.js这是一个很好的后备
@Chris哇,很棒!效果很好!我不得不让别人知道你的好建议,所以我添加了一个答案.希望你没关系.:-)

3> René..:

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


在IE8中没有console.dir :(
另外.. console.dir不做深度序列化... JSON.stringify没有
但是JSON.stringify不适用于递归对象.

4> Cees Timmerm..:

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

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

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有