Ich weiß, dass diese Frage schon 2 Jahre alt ist, aber ich hoffe, dass die Leute dieses Update sehen werden.
Sie können den Benutzer auffordern, ein Bild in einer base64-Zeichenkette zu speichern (und auch den Dateinamen festzulegen), ohne den Benutzer aufzufordern, eine Rechtsklick
var download = document.createElement('a');
download.href = dataURI;
download.download = filename;
download.click();
Ejemplo:
var download = document.createElement('a');
download.href = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
download.download = 'reddot.png';
download.click();
Um ein Klick-Ereignis mit Firefox auszulösen, müssen Sie tun, was in diese SO-Antwort . Im Grunde genommen:
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')
Seit dem 20.03.2013 unterstützt der einzige Browser, der die download
Attribut ist Chrome. Hier finden Sie die Kompatibilitätstabelle