我正在尝试开发一个带有进度条的html-5上传器。 我已经完成了发送和接收文件,但进度条仍然存在。
所有示例都使用类似的内容:
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", function (evt) { ...
当我在浏览器控制台中输入此内容时,它会以 undefined
响应var xhr = new XMLHttpRequest(); alert(xhr.upload);
如何获取上传对象的手,以便跟踪进度? 我已经测试过最新的Chrome(v16)和Firefox(v9)
答案 0 :(得分:1)
这似乎适用于Chrome控制台
var request = new XMLHttpRequest();
request.addEventListener("progress", function(){console.log('progress')});
request.open("POST", "/", true);
request.send(null);
答案 1 :(得分:1)
发现错误。 当我在不同的浏览器环境(新标签页)中使用控制台时,它可以工作。我将错误定位为python的Dajaxice库,它显然破坏了本机xhr对象的一些属性。谢谢你的帮助,让我思考......: - )
Note2-self:在用于调试时,不要认为控制台是“干净的”。
答案 2 :(得分:0)
尝试直接设置onprogress
。
xhr.upload.onprogress = function(evt){console.log('progress')};
然后做你正在做的事情。
它应该工作,只需在控制台中创建一个新的xhr,上传就在那里。你的代码中正在发生其他事情。
答案 3 :(得分:0)
这不是dajaxice问题本身,但它使用的XMLHTTMLRequest.js库的问题请参见对应的已知和未修复的问题https://github.com/ilinsky/xmlhttprequest/issues/12
但它确实是在HTML5应用程序中使用Dajax / DajaxIce的阻止程序