2012-06-12 31 views
0

Ajax代碼:需要確保我的AJAX腳本是樹立正確的

try { 
    xmlhttp = new XMLHttpRequest(); 
} 
catch(ee) { 
    try { 
     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch(e) { 
     try { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(E) { 
      xmlhttp = false; 
     } 
    } 
} 
div_base = ""; 
valor = 0; 

function abre(arquivo,metodo,div) { 
    div_base = div; 
    valor++; 
    xmlhttp.open(metodo,arquivo+"?valor="+valor); 
    xmlhttp.onreadystatechange=response 
    xmlhttp.send(null) 
} 

function response() { 
    nova_div = div_base; 
    document.getElementById(nova_div).innerHTML="<div>Loading...</div>" 
    if (xmlhttp.readyState==4) { 
     document.getElementById(nova_div).innerHTML=xmlhttp.responseText 
    } 
} 

的html代碼:

<form> 
    <select name="menu" style="width:400px; height:25px;"> 
     <option>Change Theme:</option> 
     <option></option> 
     <option onclick="javascript: abre('Chat_Themes/Default.html','GET','response2');">Default - Shadow Hunters</option> 
     <option onclick="javascript: abre('Chat_themes/Custom.html','GET','response2');">Custom - Shadow Hunters</option> 
    </select> 
</form> 
<br /> 
<div id="response2"></div> 

我改變了 「分區=性反應」 到 「DIV = responce2」 不改變在頂部,IM Ajax代碼不知道如果我必須要改變的AJAX代碼或者沒有或者我可以離開它,它工作正常,事情是這樣的,但它並沒有對谷歌Chrome瀏覽器IDK的,如果它只是谷歌瀏覽器被延遲,但它在ff中工作,也就是說很好,任何想法?

回答

1

嘗試縮進你的代碼:你會發現,你的try-catch語句沒有匹配的括號。您也可以嘗試使用Javascript驗證服務,例如jshint,但縮進應該排在第一位。

你可能要考慮使用已經有跨瀏覽器的AJAX功能的第三方庫,像jQuery