0

この JS コードを使用して、都市のリストにアクセスしています。花火、クロムなどで動作しますが、ie7 では動作しません。行document.getElementById(oDiv).innerHTML=xmlhttp.responseText;がエラーの原因です。

「responseText」を「readyState」、「statusText」、「readyState」に変更すると、スクリプトが機能します。「responseText」のみが問題を引き起こします。

ここで何が問題なのですか?

function showAjax(oDiv, countrycode, dowhat) {
    if (oDiv == "") {
        document.getElementById(oDiv).innerHTML = "";
        return;
    }
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open('POST', 'ajax.php?dowhat=' + dowhat + '&countrycode=' + countrycode, true);
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById(oDiv).innerHTML = xmlhttp.responseText;
            //document.getElementById(oDiv).innerHTML=xmlhttp.readyState;
        }
    }
    xmlhttp.send();
}

<a href='#' onclick="showAjax('citytd','$countrycode','listcities')">Click</a> <div id=citytd></div>

4

1 に答える 1

0

IE7 (およびそれ以前、および「互換性」モードの IE8) にはgetElementById、考慮すべきではないいくつかの ID を考慮するという問題があります。グローバル変数、または を含む別の要素があると思われますが、name="citytd"代わりに IE がそれを取得します (ただし、そうすべきではありません)。詳細: ...別の名前で、甘い香りがします。

于 2013-03-25T09:23:20.310 に答える