Internet explorer 在IE开发者工具控制台中显示对象
我正在用Firefox、Chrome和Internet Explorer调试我的web应用程序。对于后者,我使用开发人员工具来调试脚本 我遇到的问题是,当我在控制台窗口中编写一些表达式时,它应该返回一个对象,我所能看到的只是一个简单的Internet explorer 在IE开发者工具控制台中显示对象,internet-explorer,ie-developer-tools,Internet Explorer,Ie Developer Tools,我正在用Firefox、Chrome和Internet Explorer调试我的web应用程序。对于后者,我使用开发人员工具来调试脚本 我遇到的问题是,当我在控制台窗口中编写一些表达式时,它应该返回一个对象,我所能看到的只是一个简单的{…},这并没有真正的帮助 是否有可能使其工作方式类似于Firebug或Chrome控制台,实际显示对象内容。Chrome在这方面是最好的,因为您可以像在VisualStudio中一样直接遍历整个对象 无论如何。是否可以使IE Developer Tools控制台显
{…}
,这并没有真正的帮助
是否有可能使其工作方式类似于Firebug或Chrome控制台,实际显示对象内容。Chrome在这方面是最好的,因为您可以像在VisualStudio中一样直接遍历整个对象
无论如何。是否可以使IE Developer Tools控制台显示对象属性及其值?如果是一个选项,您可以这样调试对象:
var obj = window.JSON.parse('{"d":"2010-01-01T12:34:56Z","i":123}');
alert($H(obj).inspect());
除此之外,我知道没有其他方法可以不获得真正有用的{…}
您必须首先:
- 设置断点(或启用脚本调试)
- 触发断点(或遇到错误)
我们在微软的“朋友”们都有。3:03时,他们提到了探索对象的这种“简单”方式。在控制台脚本窗口中尝试:
for (var a in object) {
console.log("object["+a+"]="+object[a])
}
比如说,
for (var a in document.head){
console.log("document.head["+a+"]="+document.head[a])
}
尝试
console.dir(/*object*/)代码>这将在ie中为您提供更多细节。我使用内置JSON对象
JSON.stringify(my_object)
添加要观察的对象,您可以从“观察面板”中完全查看和分析该对象。这里有一种非常离谱的方法。。。通过JSON.stringify运行对象,并显示结果。什么对我有效,这可能只是他们最近添加的内容,但在您调出控制台日志之后。清除日志,但保持控制台打开,然后刷新页面。当页面载入时,您应该能够浏览对象。我不知道为什么需要这样做,但它似乎起了作用 要查看感兴趣的对象的属性,唯一的方法是在适当的行上设置断点,并使用监视窗口…@goresplater:如果您想检查代码中的某些内容,这很好。但我在控制台中运行的任意代码实际上并不是我脚本的一部分。。。简单到:window.JSON.parse(“{”d:“2010-01-01T12:34:56Z”,“i:123}”)代码>我得到的结果就是{…}
,这非常有用。谢谢微软。@Robert Koritnik:谢谢你的接受。您找到使用jQuery调试对象的方法了吗?@goresplater:您的原型解决方案对我不起作用。。。但是你的回答…我不知道还有别的办法。。。是我接受的正确答案。因为可能真的没有任何解决办法。我不知道开发工具为什么不提供这样的基本功能。@Goresplater:至于类似的jQuery功能,我写了一行代码:$.extend({inspect:function(obj,n){n=n | | |“this”;for(varp in obj){if($.isPlainObject(obj[p]){.inspect(obj[p],n+“+p);return;}.console.log(n++p.toString()”=“+obj[p])})
可在任何浏览器(包括Firebug)中轻松使用,并可由$调用。inspect(someObject)
@Robert Koritnik出色。因为jQuery不是我喜欢的;-)我在尝试生成这样一个单行程序时失败了。@goresplater:这个长行程序也遍历数组:$.extend({inspect:function(obj,n){n=n | |“This”;if($.isArray(obj)){for(var x=0;x如果您正在调试页面脚本,这很好……但是如果您在控制台中运行任意代码,并且希望直接调查结果,则无法设置任何断点。不幸的是,Microsoft对于什么是有用的开发工具有一个非常不真实的观点……它只适用于一个级别,但不适用于整个级别对象…你确实在接受的答案中看到了完全遍历对象,对吗?这是个笑话吗?dir
不受支持。但我可以使用log
来显示log:[object object]
而不是IE8中的{…}
,我承认这更有用。:)但这是真的,我不知道IE9显示了什么,甚至不知道IE10。或者他们对dir
的支持。我怀疑他们可能更聪明,否则所有这一切只证明了一件事:微软不使用IE调试web应用程序。不,这不是开玩笑。我应该澄清,这仅在IE9及以上版本中受支持。你也可以在旧的浏览器中运行IE9它不会取代旧浏览器中的测试,但使用IE9中提供的更好的开发工具可以更容易地发现bug。在IE9中工作,但它会预先打印所有对象结构,而不是像Chrome那样显示可扩展的树,例如console.log(object)
。假设这是可用的(对我来说是),这是一个更好的解决方案:-)这并没有显示所有的属性。如果你有一个复杂的对象,它似乎只显示静态属性。也就是说,如果一个属性是一个函数,它似乎被忽略了。我预计在2017年你不会使用IE8,因为IE8只有基本的开发工具。今天的工具已经有了很大的发展,它们完成了预期的任务。