Zajmuję się tworzeniem aplikacji, w której otrzymuję dane obrazu przechowywane w tablicy uint8Array. Następnie przekształcam te dane w obiekt typu blob, a następnie buduję adres URL obrazu.Kompatybilność przeglądarki konstruktorów Blob
kod uproszczony, aby uzyskać dane z serwera:
var array;
var req = new XMLHttpRequest();
var url = "img/" + uuid + "_" +segmentNumber+".jpg";
req.open("GET", url, true);
req.responseType = "arraybuffer";
req.onload = function(oEvent) {
var data = req.response;
array = new Int8Array(data);
};
Konstruktor:
out = new Blob([data], {type : datatype});
Blob contsructor jest przyczyną problemu. Działa dobrze we wszystkich przeglądarkach z wyjątkiem Chrome na urządzeniach mobilnych i stacjonarnych.
Zastosowanie Blob:
// Receive Uint8Array using AJAX here
// array = ...
// Create BLOB
var jpeg = new Blob([array.buffer], {type : "image/jpeg"});
var url = DOMURL.createObjectURL(jpeg);
img.src = url;
pulpitu Chrome daje mi NIEBEZPIECZNIE: ArrayBuffer values are deprecated in Blob Constructor. Use ArrayBufferView instead.
Komórka Chrome daje mi błąd : illegal constructor
Jeśli zmienię Konstruktor do pracy w Chrome nie działa w innych przeglądarkach.
Zamieściłem PolyFill tutaj: http://stackoverflow.com/a/16545415/2382059 – casey