有哪些工具可以追踪IE7的JavaScript问题?

时间:2010-07-27 20:19:55

标签: asp.net ajax internet-explorer-7

我正在尝试调试一个庞大而复杂的Web应用程序,它大量使用DIV,AJAX,动态HTML和服务器端代码来完成它的工作。

在正常操作下我们没有问题。但是,当我们将webapp放入IFRAME时,某些功能会触发IE7中的崩溃,导致浏览器无法运行(使用所有CPU)。

有哪些工具可以帮助追踪可能发生的情况?将IE进程加载到调试器中可以获得有关寄存器的各种有趣信息,但我认为问题出在javascript中。

我们已经跟踪了一个问题已经涉及到错误重新定位元素的应用程序(某些内容附加到window.而不是document.

我编写了一个测试IFRAME页面,它将iframe的innerHTML转储到textarea中,因此可以在各种状态下进行比较,但这只能显示静态属性,我无法分辨哪种类型的javascript事件与元素或确定处理程序是否在不合规定的情况下发射。

IE8,Firefox,Chrome等没有相同的行为。

理想情况下,我想要一些让我在已知良好状态下快照DOM(或javascript VM?)的东西,然后“就在它发生之前”,这样我们就可以找出添加/删除/丢失/不同的内容。有什么?

更新:我现在正在尝试使用IE Developer Toolbar来追踪它。

更新2:在此AJAX代码之后发生IE7崩溃:

function Sys$UI$Control$get_element() {
    /// <value domElement="true" locid="P:J#Sys.UI.Control.element"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._element;
}

return this._element;行是我失去IE之前发生的最后一件事。

6 个答案:

答案 0 :(得分:6)

  1. IE Developer的工具栏。下载here(IEDevToolBarSetup.msi)。
  2. 对于JavaScript调试,请参阅this blog

答案 1 :(得分:2)

有些人制作了一个叫做Internet Explorer Collection的软件包。它包括6种不同的IE浏览器,从不同版本的IE6到IE8。所有这些都包括Firebug(实际上,它有点工作)和Internet Explorer Developer Toolbar。

调试IE7问题对我来说真的很有帮助。

请参阅this链接。

答案 2 :(得分:1)

通过在您要开始调试的地方的javascript文件中放置'debugger',您可以在visual studio中调试javascript以及完成跟踪,调用堆栈等操作。

答案 3 :(得分:0)

IE开发人员工具栏肯定有很多帮助。 Visual Studios的调试器也非常好,如果你能得到一台带有VS和IE7的机器。

答案 4 :(得分:0)

DynaTrace是IE7的分析工具。但是,它提供了大量信息(包括JS堆栈),因此它对调试也非常有用。

答案 5 :(得分:0)

IE 7和IE 8内置了调试工具。按F12键即可进行调试。 firebug-firefox和chrome的inspect元素选项也很有用/