我正在使用 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”不适用于移动浏览器(手机和标签中的安卓浏览器)和 Linux 机器中的 Firefox。
这有什么问题吗?在移动浏览器中使用 Ajax 作为进度条的正确方法是什么?
谢谢