6

少なくとも IE9 のプログレス機能にたどり着くために考えられることはすべて試しましたが、何も機能しません。他のすべてのブラウザーは、progress 関数の内部に入り、問題なくテスト テキストを書き込みます。うまくいけば、誰かが私を助けることができます。ありがとうございました!

     var info = document.getElementById('info');
     var xhr;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();  
        } 
        else if (window.ActiveXObject) { 
            try {  
                xhr = new ActiveXObject("Msxml2.XMLHTTP");  
            } 
            catch (e) {  
                try {  
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");  
                } 
                catch (e) {}  
            }  
        }
        xhr.attachEvent("onprogress", function(e) {
            info.innerHTML += "loading...<br />";   
        });

        /*xhr.addEventListener("progress", function(e) {
            info.innerHTML += "loading...<br />";   
        }, false);*/

        xhr.open("GET", "10_MB_File.txt", true);
        xhr.send(null);
4

4 に答える 4

3

onprogressイベントはXMLHttpRequestレベル2仕様の一部です...

...IE9以下ではサポートされていません。ただし、IE10はそれをサポートすることになっています...

どのブラウザがXHRレベル2をサポートしているかについての詳細は、caniuse.comをご覧ください...

于 2012-10-12T20:12:55.400 に答える
2

IE9以下は進行中をサポートしていないため、IE9を動作させることができません。

var xhr = new XMLHttpRequest();
console.log('onprogress' in xhr);
于 2012-10-12T20:09:17.710 に答える
0

onreadystatechangeイベントを使用してメッセージを表示できます。回避策として提案しているだけです。

xhr.onreadystatechange=function() {
    if (xhr.readyState != 4) {
        // Display a progress message here.
    } else if (xhr.readyState==4 && xhr.status==200) {
        // Request is finished, do whatever here.
    }
}
于 2012-10-12T20:14:49.433 に答える
0

プロジェクトで JQuery が使用されている場合は、提案リストに追加します。以下の関数で実現できます。もちろん、JQuery $.ajax リクエストである必要があります。これらのクライアント ライブラリの利点は、ブラウザに基づいてインスタンス化されたオブジェクトがあることです。例: JQuery は、ブラウザーに基づいて "ActiveXObject("Msxml2.XMLHTTP")" または "ActiveXObject("Microsoft.XMLHTTP")" を処理します。

//displays progress bar
$('#info').ajaxStart(function () {
    $(this).show();
}).ajaxStop(function () {
    $(this).hide();
});
于 2012-10-12T20:22:49.483 に答える