Я пытаюсь реализовать кнопку загрузки для пользователей Inte rnet Explorer, которая позволит им загружать png-файл, отображаемый на странице.
Изображение предоставляется в виде URL-адреса данных и обычно отображается на странице.
Однако, когда изображение загружается в Inte rnet Explorer с использованием следующего кода, загружается только верхняя половина изображения .
Я знаю проблему не приходит от dataURLtoBlob()
, потому что чтение большого двоичного объекта как URL-адреса данных возвращает точно такие же исходные данные.
Может кто-нибудь помочь мне понять, что здесь происходит? Большое спасибо за помощь.
downloadButton.onclick = function () {
if (window.navigator.msSaveOrOpenBlob) {
var filename = "image.png";
var data = $('#qrCode').attr("href");
var blob = dataURLtoBlob(data);
console.log(data);
let reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function() {
console.log(reader.result);
};
window.navigator.msSaveBlob(blob, filename);
}
}
function dataURLtoBlob(dataUrl) {
var arr = dataUrl.split(',');
var mime = arr[0].match(/:(.*?);/)[1];
var byteString = atob(arr[1]);
var arrayBuffer = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(arrayBuffer);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], { type: mime });
}