我有一个图像编码在base64中的一个
javascript变量:data:image / png; base64,base64数据
[编辑]
我需要将该文件保存到磁盘,而不要求访问者进行右键单击
[/编辑]
可能吗 ?怎么样 ?
提前致谢
最好的祝福
解决方法
我知道这个问题是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的点击事件,您需要执行this SO answer中解释的内容.基本上:
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,完全支持下载属性的唯一浏览器是Chrome. Check the compatibility table here