在我的 Vue.js 应用程序中,我希望强制浏览器在单击按钮时下载图像 _而不显示它_。
按照 这个 答案,我想出了这个解决方案:
<span @click="downloadImg(remoteURL)">
Download Image
</span>
和方法:
downloadImg(url) {
console.log('downloading', url);
document.execCommand('SaveAs',true, url);
},
remoteURL
实际上是一个生成 url 的小函数,如下所示:
remoteURL(link) {
return this.BASE_URL+ link //link is the image's path fetched from database
},
但是,当我单击 Download Image
时,什么也没有发生。
这个问题 不相关,因为我不想只是 Download image with JavaScript
。我想要的是 安静地 下载图像,即不显示图像。
我该如何解决?
原文由 qliq 发布,翻译遵循 CC BY-SA 4.0 许可协议
我基于
blob
创建了一个解决方案。首先,我使用图像url
创建了一个blob
。加载图像 blob 后,我调用了从 FileSaver 中提取的saveAs
方法来安静地拥有 blob。更新:
我删除了 jQuery 和 FileSaver 并改编了一个普通版本。