0

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> 

上部のajaxコードを変更せずに「div=responce」を「div=responce2」に変更しました。ajaxコードを変更する必要があるかどうかわからないので、そのままにしておくと問題なく動作します。しかし、グーグルクロームが遅延している場合はグーグルクロームIDKでは機能しませんが、ffで機能します。つまり、問題はありませんか?

4

1 に答える 1

1

コードをインデントしてみてください。try-catch ステートメントに対応する中かっこがないことがわかります。jshintのような Javascript 検証サービスを試すこともできますが、インデントを最初に行う必要があります。

jQueryなど、クロスブラウザー AJAX 機能を既に備えているサードパーティ ライブラリの使用を検討することをお勧めします。

于 2012-06-12T00:40:31.133 に答える