单击

时间:2017-09-02 17:30:55

标签: javascript html5 canvas html5-canvas

在下载图像时,我能够将画布数据中的图像附加到文档正文,但只有最后一张图像被下载了吗?

var canvas = document.getElementsByClassName('canvas');
	for(var i=0; i<canvas.length; i++){
		function doCanvas(){
				ctx = canvas[i].getContext('2d');
				ctx.fillStyle = '#f90';
				ctx.fillRect(0, 0, canvas[i].width, canvas[i].height);
				ctx.fillStyle = '#fff';
				ctx.font = '30px sans-serif';
				ctx.fillText('Canvas_'+i, 10, canvas[i].height / 2 - 15);
		}
		doCanvas();
	}

	document.getElementById('download').addEventListener('click', downloadCanvas, false);
function downloadCanvas() {
				for(var j=0; j < canvas.length; j++){
				this.href = canvas[j].toDataURL();
					var im = document.createElement('img');
					im.src=this.href;
					document.body.appendChild(im);
				this.download = 'test'+j+'.png';
		}
	}
<canvas width="300" height="100" class="canvas"></canvas>
<canvas width="300" height="100" class="canvas"></canvas>
<a id="download" style="background: gray; height: 20px; text-align: center; display: block; width: 100px">Download</a>

1 个答案:

答案 0 :(得分:0)

经过多次搜索后,我在JS库下面找到了。

jszip /
jszip-utils的
FileSaver.js

使用这三个我现在只需点击一下即可下载多个文件。