我正在尝试使用面向对象的代码来处理AJAX上传。当我运行代码时,它会看到该文件,创建XMLHttpRequest对象,但我似乎无法触发progress事件。我的代码的完整来源可以在这里找到:http://pastebin.com/89QawbS6
这是一个片段:
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", MyObj.trackProgress, false);
xhr.open("POST", url, true);
...
然后在同一个对象中,使用不同的方法:
trackProgress: function (event) {
console.log(event);
// stuff that should calculate percent
}
但是console.log(事件)永远不会触发。
请注意:我知道jQuery很棒,而且我可以使用十几个很棒的上传插件。我不是为了课堂或家庭作业而做这件事,我只想更好地理解这个过程。所以提供一个jQuery插件作为答案并不是我想要的。我试图让自己减少对jQuery的依赖。
答案 0 :(得分:1)
This FF bug might是您遇到问题的原因。据报道MacOSX和Linux上的另一个类似的bug。我不知道这是否重要,但我在Windows上测试过。我仍然相信你的代码很好。