在Firefox中使用XMLHttpRequest获取上传进度数据

时间:2013-11-18 18:48:45

标签: javascript firefox upload xmlhttprequest progress

我正在尝试显示文件上传的进度报告。以下功能在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网站上显示的示例,我会欢迎与此特定案件相关的建议。

0 个答案:

没有答案