Wie erkennt man, ob XMLHttpRequest responseType="arraybuffer" unterstützt?

8

Ich möchte wissen, ob der Browser XMLHttpRequest.responseType = "arraybuffer" unterstützt. Das Problem ist, dass ich keine "allgemeine" xhr2-Unterstützung testen kann, da iOS 4.2 partielle xhr2-Unterstützung hat, die (d. H.)% Co_de%, aber nicht XMLHttpRequestUpload enthält.

    
Aron Woost 19.01.2012, 13:07
quelle

6 Antworten

10

Ich verwende Folgendes:

%Vor%

In allen Browsern, die ich getestet habe und die dies unterstützen, ist der Standardwert von responseType eine leere Zeichenfolge (wie in der Spezifikation angegeben: Ссылка ), in Browsern, die responseType nicht unterstützen, ist der Wert des Attributs nicht definiert.

    
bwindels 26.07.2012 10:10
quelle
2

Die Überprüfung von ArrayBuffer sollte eine gute Feature-Erkennung sein.

Wenn ein userAgent das Objekt ArrayBuffer unterstützt, ist es wahrscheinlich, dass es mit XHR2 funktioniert

Wie bereits erwähnt, ist es jedoch am besten, einen Feature-Test und keine Feature-Erkennung durchzuführen.

%Vor%     
Raynos 19.01.2012 15:03
quelle
1

Setze responseType auf "arraybuffer" und überprüfe, ob es den neuen Wert erhalten hat:

%Vor%     
flacs 29.01.2013 04:50
quelle
0

Haben Sie so etwas versucht?

%Vor%

Bearbeiten

Ich denke, du könntest mit so unangenehmen Sachen wie dieser feststecken.

%Vor%     
Sam Greenhalgh 19.01.2012 13:54
quelle
0

Mit Modernizr ist dies unter Modernizr.xhr2 abgedeckt. Im Anschluss an die Kommentare zur Teilunterstützung Modernizr.dataview könnte es sogar sein genauer.

%Vor%

Ich erwarte, dass beide Funktionen unterstützt werden oder nicht.

    
Tim Vermaelen 17.02.2016 15:04
quelle
0

Wenn Sie nur feststellen möchten, ob die "arraybuffer" -Antwort unterstützt wird, prüfen Sie, ob sie im globalen Objekt enthalten ist. Wenn Sie andere Funktionen erkennen möchten, weisen Sie einfach XHR().responseType zu, bis der Browser es leer "" löscht oder einen Fehler auslöst.

%Vor%     
Hydro 04.09.2016 22:38
quelle

Tags und Links