Вопрос по javascript-events, ajax, javascript, xmlhttprequest – Как проверить в JavaScript, поддерживает ли объект XMLHttpRequest события прогресса W3C?

8

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

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

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

Ваш Ответ

1   ответ
9

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

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.

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

Похожие вопросы