使用 AJAX 调用 CGI 脚本,该脚本打开文件并将其打印在 DIV 中。
这在我拥有的测试页面上工作正常,但由于某种原因在另一个页面中它会将内容打印到 DIV 中,然后将清除 DIV。使用 alert() 我可以看到 readystate 从 1,2,3,4,1,4 变化,然后在他的 4 之后第二次清除 div 内容。它实际上调用了 updatepage() 函数两次,但第二次 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;
}
编辑 !!!!!!!!!!!!!!!!!
好的,我想我发现了问题所在,但我不知道为什么。
在锚 html href="" 中导致了问题。一旦我删除它, 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>