如何使用javascript下载多个图片
how to download multiple images onload using javascript?
我正在尝试更改多个图像,我正在单独的画布上绘制图像,并修改像素,然后我想在修改后下载它们。我有一个将画布转换为图像的函数,并且我将所有新画布保存在一个数组中。当我尝试迭代数组并下载每个画布时,实际上只有最后一个图像被下载,而不是全部,即使它们实际上都存在于我的数组中,我在加载网页后在Chrome控制台检查了这一点。这是我下载图片的代码:
for (i = 0; i < numImages; i++) {
Canvas2Image.saveAsJPEG(canvases[i], canvases[i].width, canvases[i].height);
}
和我也得到以下错误在控制台:
资源被解释为文档,但以MIME类型image/octet-stream传输:
我不能改变MIME类型,但我不认为这是问题,因为代码成功下载了正确格式的最后一张图像。
我还尝试调用保存图像的函数:1. window2. 当DOMcontentLoaded3.在我的HTML页面的主体中4. document.onload
以上都没有下载超过最后一个图像。我遗漏了什么?
如果您查看Canvas2Image源代码,您可以看到saveAsJPEG工作通过更改url href,见https://github.com/hongru/canvas2image/blob/master/canvas2image.js#L47
我猜浏览器延迟了实际的位置href更新,直到javascript执行完成。
尝试在超时时间内执行文件保存,以便每个保存都能独立运行,如下所示:
for (i = 0; i < numImages; i++) {
(function(c,w,h) { // wrapping in a function to avoid timeout using the same final value of `i`
setTimeout(function() {
Canvas2Image.saveAsJPEG(c,w,h);
}, i*2000);
})(canvases[i], canvases[i].width, canvases[i].height);
}
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 下载使用POST数据动态生成的文件
- 使用ajax下载与存储名称不同名称的文件
- 使用PHP来阻止用户下载代码,但代码占用cpu
- 使用javascript|IE11下载base64数据
- 使用PapaParse下载多个文件
- 如何使用XMLHttpRequest下载文件
- 使用angular js在前端下载文件
- PHP cURL 下载进度使用 jquery
- 如何通过点击实现下载功能?[使用电话间隙]
- 点击“;下载”;使用JQuery的链接没有't下载文件
- 如何检测文件下载完成使用javascript
- Safari添加.html下载xlsx使用epplus jquery.fileDownload.js
- 为什么我的AJAX文件下载,使用基于Blob的对象url,破坏文件
- 问题下载文件使用Dropbox JavaScript SDK
- 如何下载图片&使用phonegap存储在黑莓的SDcard中
- 下载一个使用HTML5 filespace api创建的文本文件
- 在 Android 下载上使用 FileTransfer API for Phonegap 失败
- 是二进制文件(pdf, word, excel, ppt, mp3,..)下载可能使用XHR或fetch