AJAX导致Div消失

AJAX导致Div消失,ajax,html,readystate,onreadystatechange,Ajax,Html,Readystate,Onreadystatechange,使用AJAX调用CGI脚本,该脚本打开一个文件并在DIV中打印出来 这在我的测试页面上运行良好,但由于某些原因,在另一个页面中,它会将内容打印到DIV中,然后清除DIV。使用alert()我可以看到readystate从1,2,3,4,1,4变为1,2,3,4,1,4,然后第二次清除DIV内容。它实际上调用了updatepage()函数两次,但第二次DIV被清除。当我签入firebug时,innerHTML从具有内容变为具有“” 在我的测试页面中,即使发生了相同的readystate序列,也不会

使用AJAX调用CGI脚本,该脚本打开一个文件并在DIV中打印出来

这在我的测试页面上运行良好,但由于某些原因,在另一个页面中,它会将内容打印到DIV中,然后清除DIV。使用alert()我可以看到readystate从1,2,3,4,1,4变为1,2,3,4,1,4,然后第二次清除DIV内容。它实际上调用了updatepage()函数两次,但第二次DIV被清除。当我签入firebug时,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 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>

自动列表

我知道你回答了这个问题,但我只是想快速扩展你的答案

href="#"
“#”告诉浏览器查找定位标记,因此如果之后将#符号留空,它将定位到自身


此外,我还发现innerHTML会导致问题,DOM方法非常方便。但是,对于检索该值,它应该可以正常工作。我只是想提一下。

我在研究这个问题的时候,遇到了你的问题:)因此2个月的复活:)