2011-05-25 63 views
1

使用AJAX調用CGI腳本,該腳本打開文件並將其打印在DIV中。AJAX結果在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; 
    } 

編輯!!!!!!!!!!!!!!!!!

好吧我想我發現了什麼是錯的,但我不知道爲什麼。

在anchor html href =「」引起了問題。一旦我將它移除,div仍保持填充狀態。

這將導致DIV到打印

 <div class="menulinkboxes" id="listdiv"> 
     <a class="mainmenulinks" 
     onclick='openFile("list,autos")' 
     href="">auto-list</a> 
     </div> 

更換HREF後dissapear = 「」 與HREF = 「#」 固定它。 #意思是這個頁面

 <div class="menulinkboxes" id="listdiv"> 
     <a class="mainmenulinks" 
     onclick='openFile("list,autos")' 
     >auto-list</a> 
     </div> 

回答

0

我知道你回答了這個問題,但我想我很快就擴大了你的答案。

href="#" 

「#」告訴瀏覽器查找錨標籤,因此如果您將#號留空後,它會錨定到自身。

此外,我發現innerHTML可能會導致問題,並且DOM方法非常方便。爲了檢索該值,它應該可以正常工作。只是想提到它。

+0

而爲了記錄,當我遇到你的問題時,我正在研究這個確切的問題:)因此,2個月的復活:) – Xiphos 2011-07-19 19:41:54