まだ初期化されていないからです。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'));
と、「containerdiv」要素がAJAX_LoadResponseIntoElementの最初の呼び出しでロードされているはずなのに、NULLであると表示されます。
この行の前に2つのコピーを置くと、最初のコピーはNULLを示し、2番目のコピーは「[ObjectHTMLDivElement]」を示します。alert(document.getElementById('containerdiv'));
明らかに、それは「containerdiv」が初期化されていないという問題にすぎません。
繰り返しになりますが、問題は、alert()を使用せずに、XMLHTTPRequestによってフェッチされた後にこれらの要素の初期化を強制するにはどうすればよいかということです。