0

私のクライアントの 1 人は、 component で開発されたフォームを持っていましたMosets Tree。フォームでメイン カテゴリを選択すると、サブカテゴリが自動的に表示されます。問題は次のとおりです。メイン カテゴリを選択した後にサブカテゴリを表示していた Java スクリプトが IE で動作しなくなりました。

コード:

var xmlhttp;
function stateChanged(){
    if (xmlhttp.readyState==4) {
        document.getElementById("subCatId").innerHTML = xmlhttp.responseText;
    }
}

function fnGetSubCategory() {
    xmlhttp = GetXmlHttpObject();
    var new_cat_id = document.getElementById("new_cat_id").value;
    if (xmlhttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return true;
    }

    var url="ps.php?cat_id="+new_cat_id;
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);

}

function GetXmlHttpObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
 
    if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
 
} 
 

他のすべてのブラウザでは問題なく動作しています。

前もって感謝します。

4

1 に答える 1

0

次のコードでオブジェクト xmlHttp を作成してみてください。

function createXmlHttpRequestObject(){
var xmlHttp;
try{
        xmlHttp = new XMLHttpRequest();
}
catch (e) {

    // If its IE 6 or other version before

    var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');

    // We try all versions

    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
        try {

            //Try creating xmlHttp object

            xmlHttp = new ActiveXObject(XmlHttpVersions[i]); 
        }
        catch (e){
            xmlHttp = false;
        }
    }
}

// If object doesn't exist sends error

if (!xmlHttp){
    alert("Error creating XMLHttpRequest object");
}

else{
    return xmlHttp;
}
}
于 2015-05-14T19:56:41.993 に答える