2010-07-27 5 views
0

Я пытаюсь отлаживать большой и сложный webapp, который сильно использует DIV, AJAX, динамический HTML-код и серверный код для выполнения своей работы.Какие средства существуют для отслеживания проблем IE7 javascript?

При нормальной работе у нас нет проблем. Однако, когда мы помещаем webapp в IFRAME, некоторые функции запускают сбой в IE7, что делает браузер неработоспособным (все используемые ЦП).

Какие существуют инструменты для отслеживания того, что может произойти? Загрузка IE-процесса в отладчик дает мне всевозможную увлекательную информацию о регистрах, но я думаю, что проблема в javascript.

Мы разыскали одну проблему с приложением уже что вовлеченного неправильный reparenting элемента (что-то подключился к window. вместо document.)

Я написал страницу IFRAME тест, который выгружает innerHTML из фрейма в textarea, поэтому его можно сравнивать в разных состояниях, но это показывает только статические атрибуты, я не могу сказать, какие события javascript связаны с элементами или определить, стреляет ли обработчик из очереди.

IE8, Firefox, Chrome и т. Д. Не имеют такого же поведения.

В идеале мне хотелось бы что-то, что позволило бы мне сделать снимок DOM (или javascript VM?) Во время известного хорошего состояния, а затем «как раз перед тем, как это произойдет», чтобы мы могли выяснить, что добавлено/удалено/отсутствует/, Что там?

Обновление: Теперь я пытаюсь использовать панель инструментов разработчика IE, чтобы отслеживать ее.

Update 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.

ответ

6
  1. IE Панель инструментов разработчика. Загрузить here (IEDevToolBarSetup.msi).
  2. Для отладки JavaScript см. this blog.
+0

Удивительно, забыли об этом. Я использовал древний отладчик Microsoft Script Debugger и, по крайней мере, нашел «последний вызов хорошей функции перед смертью» - что-то в Microsoft.Ajax.js ... – mwalker

+0

Он встроен по умолчанию в IE 7 и выше. Для 6 и ниже вам нужно загрузить панель инструментов. –

0

Панель инструментов разработчика IE определенно помогает много. Отладчик Visual Studios также очень хорош, если вы можете получить на нем машину с VS и IE7.

+0

На моей тестовой виртуальной машине был Visual Studio Web Developer, но я не мог заставить отладчика ударить, чтобы я мог пройти через код. В итоге я использовал старый отладчик Microsoft Script Debugger, чтобы найти конкретную точку сбой. – mwalker

1

Поместив «отладчик» в файлы javascript в тех местах, где вы хотите начать отладку, вы можете отлаживать javascript в визуальной студии, а также отслеживать, стеки вызовов и т. Д.

+0

Этот ответ должен иметь какой-то пример или хотя бы ссылку на пример. – hitautodestruct

2

Какой-то парень создал пакет, который называется Internet Explorer Collection. Он включает в себя около 6 различных браузеров IE от IE6 до IE8 в разных сборках. Все они включают Firebug (действительно, это вроде работы) и панель инструментов разработчика Internet Explorer.

Мне было очень полезно отлаживать проблемы IE7.

см. this ссылка.

0

DynaTrace - это инструмент для профилирования IE7. Однако он предоставляет большую информацию (включая стеки JS), поэтому он также может быть очень полезен для отладки.

0

В IE 7 и IE 8 встроены средства отладки. Нажмите F12, и вы готовы к отладке. Также полезны параметры элемента firebug-firefox и chrome для проверки/

+1

Это только встроенный в IE8, а Chrome и Firefox не показывают сбоя. – mwalker

Смежные вопросы