Я загружаю HTML-контент через ajax в div (используя mootools 1.11 и сжатие, если это имеет значение).
В загружаемом контенте у меня есть JS, который манипулирует некоторыми загруженными объектами HTML.
Все работает. нормально в FF, но когда я загружаю его в IE (проверено на IE7 на данный момент), код завершается с ошибкой: «'null' является нулевым или не является объектом.
Быстрый тест показывает, что новые элементы, загруженные AJAX, не находятся в DOM IE. Загрузил div с идентификатором "test", и когда я запустил document.getElementById('test'), я получил null. Излишне говорить, что запуск getElementById для исходных элементов работает нормально.
Кто-нибудь знает, как решить/обойти эту проблему?
Еще немного информации: я поместил свой код в окно «domready». Пытался использовать событие «загрузить», но IE никогда его не вызывал.
UPDATE
как и советовали, я проверил тот же скрипт на IE8 с лучшими возможностями отладки.
Похоже, проблема действительно во времени. Я запускаю свой код в окне domReady, и кажется, что он запускается мгновенно, не дожидаясь готовности DOM (во всплывающем окне). Запуск того же скрипта с помощью отладчика после загрузки всей страницы без проблем находит элементы.
Итак, я думаю, теперь вопрос заключается в том, как заставить скрипт запускаться в нужное время.
- событие domready, кажется, срабатывает задолго до того, как дом будет готов
- событие загрузки, похоже, вообще не срабатывает
- размещение скрипта в конце файла после объектов HTML также не помогает
- В параметрах Mootools AJAX я указываю «evalScripts» как true, иначе скрипт вообще не запускается.
Любые идеи?