如何调试IE8崩溃?

时间:2010-08-16 10:29:57

标签: debugging internet-explorer-8 crash

有没有一种很好的方法来调试IE8崩溃的原因?我们有一个简单的AJAX功能的网站:

  • 带有相应按钮的文本框,onclick事件触发JS事件。
  • JS事件调用.NET服务(下面的代码)

代码在兼容模式下运行的FF,Chrome,Opera,Safari,IE7,IE8中运行良好。但是,在标准模式下运行IE8会导致窗口崩溃/恢复。没有错误(在崩溃之前或之后),并且使用开发人员工具栏,似乎所有内容似乎都已正确加载。

我已经恢复使用基本的msgbox来解决浏览器崩溃的问题,它似乎在服务调用之时或之后:

Service.CallService(params, onServiceSuccess, onServiceError);

<asp:ScriptManager ID="scriptMgr" runat="server"> 
    <Services>
        <asp:ServiceReference Path="<somepath>/Service.asmx" InlineScript="false" />
    </Services>
</asp:ScriptManager>

服务非常简单,它只返回一个字符串[]。

最终我正在寻找一种工具,它可以让我简单地捕获异常,并找出问题所在。我的猜测是我必须做一些不合规的事情,但理想情况下我想要一个能够让我快速诊断问题的工具,而不会回到猜测游戏。

非常感谢任何提示

修改

使用下面推荐的JS调试器取得了一些进展,我可以看到服务返回,并成功运行OnServiceSuccess调用。这个调用没有太大作用,它使用一些JQuery来隐藏一些表单元素:

$('.row').filter(':not(selector)').hide();

进一步跟踪调试器然后将我们带入框架代码,我可以看到我们正确处理了XmlHttp对象.....然后它退出函数(调用堆栈中的最后一个)....然后就崩溃了。

关闭谷歌我去....

由于

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

对于那些仍在看这个答案的人,我们最近在IE9中遇到了类似的问题。

我不确定IE8的行为是否仍然像这样发生,但似乎确实很难调试IE崩溃(即浏览器在执行完javascript后崩溃)。

在我们的例子中,我们必须为IE9编写隐藏某些行的解决方法:

if ($.browser.msie && parseInt($.browser.version, 10) >= 9)
{
    showRow = function(row) { row.css('visibility', ''); };
    hideRow = function(row) { row.css('visibility', 'collapse'); };
}