如果XMLHttpRequest对象支持W3C进度事件,如何签入JavaScript?
有没有办法在JavaScript中检查如果XMLHttpRequest对象支持W3C进度事件,如何签入JavaScript?,javascript,ajax,xmlhttprequest,dom-events,Javascript,Ajax,Xmlhttprequest,Dom Events,有没有办法在JavaScript中检查XMLHttpRequest对象是否支持?我的意思是,如果设置onload、onprogress、onabort、onerror等,则某些处理程序函数的属性将使这些函数调用这些事件,如前所述 附加(额外)问题:是否有办法增加XMLHttpRequest(例如使用一些计时器)以支持这些事件 旁注:我首先在XMLHttpRequest的上下文中发现了有关W3C进度事件的信息,您是否尝试过这样做 try { var xhr = new XMLHttpReq
XMLHttpRequest
对象是否支持?我的意思是,如果设置onload
、onprogress
、onabort
、onerror
等,则某些处理程序函数的属性将使这些函数调用这些事件,如前所述
附加(额外)问题:是否有办法增加XMLHttpRequest
(例如使用一些计时器)以支持这些事件
旁注:我首先在
XMLHttpRequest
的上下文中发现了有关W3C进度事件的信息,您是否尝试过这样做
try {
var xhr = new XMLHttpRequest();
if ('onprogress' in xhr) {
// Browser supports W3C Progress Events
} else {
// Browser does not support W3C Progress Events
}
} catch (e) {
// Browser is IE6 or 7
}
我在Firefox和IE8中进行了测试。Firefox显示了它的支持。IE说它不支持W3C进度事件。如果(xhr.onload!==undefined){…}的替代方法是使用
if('onload'在xhr中){…}
最好在xhr中测试'onprogress',因为有些浏览器(Opera)实现onload/onerror,但不是onprogress,尽管Opera不会触发onprogress,但是它可以通过以下方式进行模拟:setInterval({if(xhr.readyState==3&&xhr.responseText!==last)xhr.onprogress();},250)@4esn0k我已经更新了我的答案。我不知道Opera有不同的实现。谢谢