我正在尝试显示文件上传的进度报告。以下功能在Chrome中正常运行:
function loading() {
var XHR = new XMLHttpRequest();
if (XHR.upload) {
XHR.upload.addEventListener('progress', function(event) {
var bar = document.getElementById('bar');
var howfar = Math.round((event.loaded / event.total) * 100);
bar.value = howfar;
}, false);
}
XHR.onreadystatechange=function() {
if (XHR.readyState==4 && XHR.status==200) {
document.getElementById('formdiv').innerHTML=XHR.responseText;
}
}
var form = document.getElementById('updoc');
var formdata = new FormData(form);
XHR.open('post', 'progress.php', true)
XHR.send(formdata);
}
但是,只有包含以下代码时,它才适用于Firefox:
XHR.addEventListener('loadstart', function() {
alert('Loading: please wait');
});
在这种情况下,除非在javascript警告框中单击“确定”,否则将显示进度。 上传本身总是成功的。 Firefox在这方面是否存在已知问题?我在Linux上使用Firefox 25.0,但在Windows上使用Firefox也是如此。 关于Stack Overflow关于此主题的问题的许多答案都将提问者引用到jQuery解决方案,我知道其他方法也是可行的,但是由于代码在Chrome中正常运行,并且遵循Mozilla Development网站上显示的示例,我会欢迎与此特定案件相关的建议。