Я создал инструмент javascript, который считывает фотографию из поля ввода, изменяет ее, изменяет размер и отображает на странице в теге. Затем я создаю ссылку и запускаю загрузку автоматически.
Все отлично работает с Firefox, Opera, Safari, но работает ОДИН РАЗ в Chrome! (не работает все в IE, но это не проблема для меня. Есть идеи?
https://jsfiddle.net/tuttoeniente/efod3avh/1/
EDIT:
ТОЛЬКО ОДИН РАЗ , я имею ввиду после открытия браузера. Если я закрою браузер, открою его снова, кеш будет работать. Все работает нормально, второй раз фото генерируется правильно, но оно не загружается автоматически.
function downloadCanvas() {
if (datoImg !== undefined) {
if (!isChrome && !isIE) {
//funziona per firefox, safari ed opera
var link = document.createElement("a");
document.body.appendChild(link);
link.href = datoImg;
link.download = getNomeFoto();
link.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window}));
document.body.removeChild(link);
} else{
//converte in blob, altrimenti chrome non codificava bene
dataURIToBlob(datoImg, callback);
}
} else {
alert("Niente da scaricare");
}
}
function dataURIToBlob(dataURI, callback) {
var binStr = atob(dataURI.split(',')[1]),
len = binStr.length,
arr = new Uint8Array(len);
for (var i = 0; i < len; i++) {
arr[i] = binStr.charCodeAt(i);
}
callback(new Blob([arr]));
}
//funzione utilizzata per chrome che genera link
var callback = function (blob) {
var a = document.createElement('a');
a.download = getNomeFoto();
a.innerHTML = 'download';
a.href = URL.createObjectURL(blob);
a.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window}));
};