テストしている簡単なスクリプトがありますが、その動作は非常に奇妙です。ロードするスクリプトを呼び出して特定td id
のスクリプトに追加し、次に2番目のスクリプトを呼び出してそれを別のスクリプトに追加しますtd id
が、何らかの理由で、最初のdivのコンテンツが分離していても消去されます。
これは私が持っているものです:
function call_back(result,div_id,func){
document.getElementById(div_id).innerHTML = result;
if(typeof(func) != 'undefined'){func();}
}
function caller(url,cfunc)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function call_file(url,div_id,func){
caller(url,function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
call_back(xmlhttp.responseText,div_id,func);
}
});
}
次に、これをオンロードに設定します。
window.onload = function(){
stage = 6;
call_file('test.html','menu_left');
switch(parseInt(stage)){
case 6: call_file('test2.html','main'); break;
}
};
問題はcaseステートメントで発生します。ケースステートメントを削除すると、追加されたコンテンツtest.html
は正常に読み込まれますが、ケースステートメントを追加すると、コンテンツがtest.html
消えてからtest2.html
表示されるだけです。
IDのhtmlは次のとおりです。
<table class="body_wrapper">
<tr>
<td class="menu_left" id="menu_left"></td>
<td class="main" id="main"></td>
</tr>
</table>
なぜこれが起こっているのでしょうか?