Я знаю, что этому вопросу уже 2 года, но, надеюсь, люди увидят это обновление.
Вы можете предложить пользователю сохранить изображение в строке base64 (а также задать имя файла), не спрашиваяпользователь должен сделать щелчок правой кнопкой мыши
var download = document.createElement('a');
download.href = dataURI;
download.download = filename;
download.click();
Пример:
var download = document.createElement('a');
download.href = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
download.download = 'reddot.png';
download.click();
Чтобы вызвать событие щелчка с помощью Firefox, вам нужно выполнить то, что объясненов этот так ответ .В основном:
function fireEvent(obj,evt){
var fireOnThis = obj;
if(document.createEvent ) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( evt, true, false );
fireOnThis.dispatchEvent( evObj );
} else if( document.createEventObject ) {
var evObj = document.createEventObject();
fireOnThis.fireEvent( 'on' + evt, evObj );
}
}
fireEvent(download, 'click')
По состоянию на 20.03.2013, единственным браузером, который полностью поддерживает атрибут download
, является Chrome. Проверьте таблицу совместимости здесь