Как я могу отладить сбой IE8? - PullRequest
2 голосов
/ 16 августа 2010

Есть ли хороший способ отладить причину сбоя 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>

Сервис довольно прост, он просто возвращает строку [].

В конечном итоге я ищу инструмент, который позволил бы мне просто поймать исключение и выяснить, в чем проблема. Я предполагаю, что я должен делать что-то несовместимое, но в идеале мне нужен инструмент, который позволил бы мне быстро диагностировать проблему, не возвращаясь к угадыванию игр.

Любые советы приветствуются

EDIT

Некоторый прогресс, с использованием отладчика JS, рекомендованного ниже, я вижу, что служба возвращается и успешно выполняет вызов OnServiceSuccess. Этот вызов мало что делает, он использует JQuery для скрытия некоторых элементов формы:

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

Дальнейшее отслеживание с помощью отладчика приводит нас в код инфраструктуры, и я вижу, что мы правильно располагаем объект XmlHttp ..... и затем после его выхода из функции (последней в стеке вызовов) .... а затем он падает.

В Google, я иду ...

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 сентября 2012

Для тех, кто все еще собирается взглянуть на этот ответ, мы недавно столкнулись с похожей проблемой в 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 голосов
/ 16 августа 2010

Посмотрите на JScript Debugger в Internet Explorer 8 .

...