【问题标题】:What tools exist for tracking down IE7 javascript problems?有哪些工具可用于追踪 IE7 javascript 问题?
【发布时间】:2010-07-27 20:19:55
【问题描述】:

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

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

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

我们已经找到了应用程序的一个问题,该问题涉及不正确地重新设置元素的父级(将自身附加到 window. 而不是 document.

我写了一个测试 IFRAME 页面,将 iframe 的 innerHTML 转储到 textarea 中,因此可以在各种状态下进行比较,但这仅显示静态属性,我不知道与哪种 javascript 事件相关联元素或确定处理程序是否按顺序触发。

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

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

更新:我现在正在尝试使用 IE 开发者工具栏来追踪它。

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

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 之前发生的最后一件事。

【问题讨论】:

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


    【解决方案1】:
    1. IE 开发者工具栏。下载它here (IEDevToolBarSetup.msi)。
    2. 有关 JavaScript 调试,请参阅 this blog

    【讨论】:

    • 太棒了,忘记了。我使用的是古老的 Microsoft Script Debugger,它至少找到了“死前最后一个好的函数调用”——Microsoft.Ajax.js 中的一些东西......
    • IE 7 及以上版本默认嵌入。 6 及以下需要下载工具栏。
    【解决方案2】:

    有人制作了一个名为 Internet Explorer Collection 的捆绑包。它包括一些 6 种不同的 IE 浏览器,从 IE6 到 IE8 的不同版本。所有这些都包括 Firebug(真的,它有点工作)和 Internet Explorer 开发工具栏。

    调试 IE7 问题对我很有帮助。

    请参阅this 链接。

    【讨论】:

      【解决方案3】:

      通过将“调试器”放置在 javascript 文件中您想要开始调试的位置,您可以在 Visual Studio 中调试 javascript 以及完成跟踪、调用堆栈等。

      【讨论】:

      • 这个答案应该有一些例子,或者至少有一个例子的链接。
      【解决方案4】:

      IE 开发人员工具栏肯定有很大帮助。 Visual Studios的调试器也很不错,如果你能弄到一台装有VS和IE7的机器。

      【讨论】:

      • 我的测试虚拟机上安装了 Visual Studio Web Developer,但我始终无法启动调试器,因此我可以单步执行代码。我最终使用古老的 Microsoft Script Debugger 来查找特定的崩溃点。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 这只是IE8内置的,Chrome和Firefox不会出现崩溃。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        • 2012-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多