2011-03-24 266 views
1

無論何時我使用ajax調用來加載div,我的整個頁面都會再次加載。 我已經注意到'body onload = init()'onload事件正在觸發ajax響應,並且所有的初始化都再次發生。我不希望這種情況發生。 有沒有一種方法,只有div通過ajax調用加載。Ajax觸發機構的onLoad事件

<body onload="init()"> 
..... 
..... 
<div>...<a href="" onclick="saveView('more')"><b>More</b></a></div> 
</body> 

main.js

function saveView(arg){ 
    if(arg=="more"){ 
      ajaxGet(baseRef+"all.html", loadList); 

    }else{ 
      ajaxGet(baseRef+"all-A.html", loadList); 

    } 
function init(){ 
..... 
} 

function ajaxGet(url, responseHandler) 
{ 
    var page_request = false; 

    if (window.XMLHttpRequest && !(window.ActiveXObject && window.location.protocol == "file:")) { 
       // use this only if available, and not using IE on a local filesystem 
     page_request = new XMLHttpRequest(); 
     } 
    else if (window.ActiveXObject) { // older versions of IE, or IE on a local filesystem 
     try { 
      page_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
     catch (e){ 
      try{ 
       page_request = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch (e){ 
      } 
     } 
    } 
    else { 
     alert("Your browser does not support XMLHTTP."); 
     return false; 
    } 


    page_request.onreadystatechange=function() { 
     if(page_request.readyState==4) { 
         // on local machines the status for success is 0. on web servers it is 200 
      if(page_request.status==200 || page_request.status==0) { 
       responseHandler(page_request); 
      } 
     } 
    } 

    page_request.open('GET', url, true); 
    page_request.send(null); 
} 

function loadList(page_request){ 
    document.getElementById("list").innerHTML=page_request.responseText; 
    Loaded = true;  
    try{ 
     if(pLoaded) 
      doFilterStateChange1(); 
     }catch(e) 
     { 
     } 
    setTimeout("restoreScrollTop()", 1000); 
} 
+1

請提供更多詳細信息,例如您使用的HTML和JS代碼。 – Thorben 2011-03-24 11:15:41

回答

1

觸發onLoad事件的不是ajax。 如果您看到錨標籤,我沒有爲href =「」分配任何值,導致頁面再次被加載。刪除它解決了這個問題。

+0

如果href屬性從定位標記中移除,則當光標懸停在其上時,手形光標不會顯示。解決方案是保持href並賦值#即hre​​f =「#」 – Mady 2011-03-25 06:30:20

0

我們就需要看你的代碼,以幫助,但是當頁面做的事情一樣重裝等,這通常意味着他們是一個腳本錯誤。使用螢火蟲檢查錯誤,如果快速刷新,可能很難捕捉到。

+1

它應該是一個評論。 – Kangkan 2011-03-24 11:17:18