这是因为它还没有初始化。如果我输入一个 alert(),它允许浏览器被释放并初始化元素。那么,问题是如何在不使用警告框的情况下强制它初始化元素?
这是相关的代码...
$().ready(function() {
AJAX_LoadResponseIntoElement ("mybody", "skin1.txt");
AJAX_LoadResponseIntoElement ("contentdiv", "index.txt");
initPage();
});
AJAX_LoadResponseIntoElement (id, file) 简单地使用 XMLHTTPRequest 获取“文件”并将其加载到 id 的 innerHTML 中。
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()?