Я пытаюсь отлаживать большой и сложный 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.
Удивительно, забыли об этом. Я использовал древний отладчик Microsoft Script Debugger и, по крайней мере, нашел «последний вызов хорошей функции перед смертью» - что-то в Microsoft.Ajax.js ... – mwalker
Он встроен по умолчанию в IE 7 и выше. Для 6 и ниже вам нужно загрузить панель инструментов. –