AJAXを使用して、ファイルを開き、それをDIVに出力するCGIスクリプトを呼び出します。
これは私が持っているテストページではうまく機能しますが、何らかの理由で別のページでコンテンツをDIVに出力してから、DIVをクリアします。alert()を使用すると、readystateが1,2,3,4,1,4から変化し、その後4回目にdivの内容がクリアされるのを確認できます。実際にはupdatepage()関数を2回呼び出しますが、2回目はDIVがクリアします。ファイアバグをチェックインすると、innerHTMLがコンテンツを持つものから""を持つものに変わります。
私のテストページでは、同じシーケンスのreadystateが発生しても、これは発生しません。
これが私が問題を抱えているコードのスニペットです:
self.xmlHttpReq.open('POST', cgiScript, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4)
{
updatepage(self.xmlHttpReq.responseText);
}
}
function updatepage(str)
{
document.getElementById("result").innerHTML = str;
}
編集 !!!!!!!!!!!!!!!!!
何が悪いのかわかったと思いますが、理由はわかりません。
アンカーのhtmlhref=""が問題の原因でした。私がそれを削除すると、divは入力されたままになりました。
これにより、印刷後にDIVが消えます。
<div class="menulinkboxes" id="listdiv">
<a class="mainmenulinks"
onclick='openFile("list,autos")'
href="">auto-list</a>
</div>
href=""をhref="#"に置き換えると修正されました。#はこのページを意味します
<div class="menulinkboxes" id="listdiv">
<a class="mainmenulinks"
onclick='openFile("list,autos")'
>auto-list</a>
</div>