Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果XMLHttpRequest对象支持W3C进度事件,如何签入JavaScript?_Javascript_Ajax_Xmlhttprequest_Dom Events - Fatal编程技术网

如果XMLHttpRequest对象支持W3C进度事件,如何签入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

有没有办法在JavaScript中检查
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有不同的实现。谢谢