我知道这个问题已经有两年了,但希望人们能看到这个更新。
您可以提示用户以 base64 字符串保存图像(并设置文件名),而不要求用户执行右键点击
var download = document.createElement('a');
download.href = dataURI;
download.download = filename;
download.click();
Example:
var download = document.createElement('a');
download.href = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
download.download = 'reddot.png';
download.click();
为了使用 Firefox 触发点击事件,您需要按照中的说明进行操作这个答案 https://stackoverflow.com/a/827793。基本上:
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')
截至 2013 年 3 月 20 日,唯一完全支持download
属性是Chrome。在这里查看兼容性表 http://caniuse.com/#feat=download