Как проверить в JavaScript, поддерживает ли объект XMLHttpRequest события прогресса W3C?

Есть ли способ проверить в JavaScript, поддерживает ли объект XMLHttpRequestСобытия W3C Progress? Я имею в виду, что если в свойствах onload, onprogress, onabort, onerror и т. Д. Для некоторой функции-обработчика эти функции называются этими событиями, как описано.

Дополнительный (бонусный) вопрос: есть ли способ дополнить XMLHttpRequest (например, используя некоторые таймеры) для поддержки этих событий?

Sidenote: I have first found about W3C Progress Events in the context of XMLHttpRequest Вот

Ответы на вопрос(1)

Решение Вопроса

Вы пытались сделать это таким образом?

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 & amp; IE8. Firefox показывает, что поддерживает это. IE говорит, что не поддерживает события W3C Progress.

 01 дек. 2011 г., 12:18
лучше проверить на «onprogress» в xhr, потому что некоторые браузеры (Opera) реализуют onload / onerror, но не onprogress, хотя Opera не запускает onprogress, но его можно эмулировать с помощью: setInterval ({if (xhr.readyState === 3 & amp; & amp; xhr) .responseText! == last) xhr.onprogress ();}, 250);
 01 дек. 2011 г., 15:24
@ 4esn0k Я обновил свой ответ. Я не знал, что у Opera была другая реализация. Благодарю.
 Jakub Narębski09 авг. 2009 г., 14:35
Альтернативойif (xhr.onload !== undefined) { ... } это использоватьif ('onload' in xhr) { ... }

Ваш ответ на вопрос