2010-08-16 129 views
2

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

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

的代码工作正常在FF,铬,歌剧,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对象... ..然后在退出函数(调用堆栈中的最后一个)之后......然后它崩溃。

关闭到谷歌我去....

感谢

回答

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'); }; 
} 
0
+0

感谢 - 这是非常冷静,并帮助一点点....但我不认为这个问题是JS问题(因为它在其他浏览器中运行)。这很有帮助,因为它证实了我的服务调用运行完成,并执行成功功能.....然后崩溃。我真的需要知道的是IE8遇到什么问题,它无法处理:( 我会发布在我原来的帖子上面运行的JS – Chris 2010-08-16 10:53:50