Это потому, что он еще не инициализирован. Если я добавлю alert (), это позволит браузеру освободиться и инициализировать элемент. Тогда возникает вопрос: как я могу заставить его инициализировать элемент, не используя окно предупреждения?
Вот соответствующий код ...
$().ready(function() {
AJAX_LoadResponseIntoElement ("mybody", "skin1.txt");
AJAX_LoadResponseIntoElement ("contentdiv", "index.txt");
initPage();
});
AJAX_LoadResponseIntoElement (id, file) просто извлекает «файл» с запросом XMLHTTPRequest и загружает его во внутренний HTML-идентификатор id.
initPage () работает, пока не вызовет setContentHeight (), которая работает до этой точки:
if (DOMheight > y_lbound) { document.getElementById('containerdiv').style.height = (DOMheight+container_ymod) + 'px'; }
Если я поставлю alert(document.getElementById('containerdiv'));
перед этой строкой, то это говорит о том, что это NULL, хотя элемент «containerdiv» должен был быть загружен при самом первом вызове AJAX_LoadResponseIntoElement.
Если я поставлю ДВА копии alert(document.getElementById('containerdiv'));
перед этой строкой, первая из них будет иметь значение NULL, а вторая - "[Object HTMLDivElement]".
Очевидно, что проблема в том, что «containerdiv» не инициализируется.
Итак, еще раз, вопрос в том, как я могу форсировать инициализацию этих элементов после выборки XMLHTTPRequest, без использования alert ()?