Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax文件上载进度不适用于移动浏览器_Javascript_Ajax - Fatal编程技术网

Javascript Ajax文件上载进度不适用于移动浏览器

Javascript Ajax文件上载进度不适用于移动浏览器,javascript,ajax,Javascript,Ajax,我使用Ajax生成文件上传进度条,使用以下JavaScript代码 function ulpoad_file(){ var o = $id("progress"); para = document.createElement("p") para.style.height = 2 + 'px'; var progress = o.appendChild(para); var file = $id("file").files[0]; va

我使用Ajax生成文件上传进度条,使用以下JavaScript代码

function ulpoad_file(){ 


    var o = $id("progress");

    para = document.createElement("p")
    para.style.height = 2 + 'px'; 
    var progress = o.appendChild(para);
    var file = $id("file").files[0];


    var xhr = new XMLHttpRequest(); 


    xhr.upload.addEventListener("progress", function(e) {      
        var pc = parseInt(100 - (e.loaded / e.total * 100));
        progress.style.backgroundPosition = pc + "% 0";        
        p = 100-pc;
        $id("status").innerHTML = p.toString() + "% Uploaded";
    }, false);


    xhr.onreadystatechange = function(e) {
        if (xhr.readyState == 4) {
            progress.className = (xhr.status == 200 ? "success" : "failure");
        }
    };


    xhr.open("post", "", true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            callback(xhr.responseText);
        }
    }

    var datas = new FormData();
    datas.append('file', file);


    xhr.send(datas);  

}

function $id(id) {
    return document.getElementById(id);
}
这对于chrome和一些firefox版本来说是可以的

但是“xhr.upload.addEventListener”不适用于移动浏览器(手机和标签中的android浏览器)和Linux机器中的Firefox

这有什么问题吗? 在移动浏览器中使用Ajax作为进度条的正确方法是什么


谢谢

我也有同样的问题。你对此有什么决定吗?它适用于Android上的Chrome和FF,但不适用于Android默认浏览器!此浏览器中似乎没有“进度”事件。此处也存在类似问题。进度事件在iOS 7 Safari上触发,但在iOS上的mobile chrome上不触发。有任何消息或提示某人吗?这里还有一个问题,“进展事件”在Safari iPad上启动,但在Chrome iPad上没有。。。我已经搜索了大约3个小时的解决方案,但什么都没有。事实上,至少对于iOS上的Chrome来说,进度事件不起作用。见和“已知问题#1”