0

実行すると画像の読み込みをトリガーし、Webサービスから結果を取得したら画像を非表示にするAJAXスクリプトがありますが、画像は表示されています。

私のコードは以下の通りです:

    <script type="text/javascript">
        function get_Code_Results() {
            document.getElementById("loader").innerHTML = "<img src=\'loading.gif\' />";
            var url = document.location;
            if (window.XMLHttpRequest) req = new XMLHttpRequest();
            else if (window.ActiveXObject) req = new ActiveXObject("Microsoft.XMLHTTP");
            req.onreadystatechange = processRequest;
    //      req.open("GET", url, true);
    //      req.send(null);
            req.open("POST",url,true);
            req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            req.send("isbns="+document.getElementById("Code").value);
            function processRequest() {
        if (req.readyState == 4 && document.getElementById("1").checked == true) {
            document.getElementById("results").value = "myfirsturl.com" + req.responseText;
        }
        else if (req.readyState == 4 && document.getElementById("2").checked == true) {
            document.getElementById("results").value = "myurl.com" + req.responseText;
        }           
    }
}
    </script>

ローダーを表示したい位置があります。

    <div id="loader"><img src="loading.gif" style="display:none;" /></div>

コードのどこに間違いがありますか?いくつかのアドバイスをいただければ幸いです!

4

2 に答える 2

1

関数はネストされています。私はあなたが次のような何かを書くふりをしていると思います:

function get_ISBN_Results() {
            document.getElementById("loader").innerHTML = "<img src=\'loading.gif\' />";
            var url = document.location;
            if (window.XMLHttpRequest) req = new XMLHttpRequest();
            else if (window.ActiveXObject) req = new ActiveXObject("Microsoft.XMLHTTP");
            req.onreadystatechange = processRequest;
    //      req.open("GET", url, true);
    //      req.send(null);
            req.open("POST",url,true);
            req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            req.send("isbns="+document.getElementById("isbns").value);
}
function processRequest() {
        if (req.readyState == 4 && document.getElementById("book").checked == true) {
            document.getElementById("results").value = "myfirsturl.com" + req.responseText;
        }
        else if (req.readyState == 4 && document.getElementById("magazine").checked == true) {
            document.getElementById("results").value = "myurl.com" + req.responseText;
        }           
 }
于 2012-09-03T14:47:23.353 に答える
1
  <div id="loader"><img src="loading.gif" style="display:none;" /></div>

を変更する必要がありますstyle="display:none;"。代わりに次のコードを書くことをお勧めします:

<div id="loader" style="display:none;"><img src="loading.gif" /></div>

その後、必要に応じて:

$('#loader').show(); // To show the laoding icon
$('#loader').hide(); // To hide it
于 2012-09-03T14:45:30.307 に答える