html2canvas图片跨域问题图文详解
短信预约 -IT技能 免费直播动态提醒
今天遇到的一个需求,就是将自己写的html内容转化成图片,并下载到本地,功能实现了,但是有一个小问题,就是我们后端给我返回的图片,我下载的时候拿不到
1.html写出来的样式
2.利用html2canvas插件下载下来的图片
出现的问题:不显示 后端返回给我的图片
html2canvas图片跨域问题,是由于canvas自身的设计,加载的是本地的资源,对跨域资源默认是不加载的。
3.解决方法
<img :class="lazy" data-src="sharedata.data.imageUrl" crossorigin="anonymous">
let downimg= ()=>{
setTimeout(()=>{
proxy.$nextTick(()=>{
html2canvas(document.querySelector('#img'),{
useCORS: true
}).then(canvas => {
var url = canvas.toDataURL() //把canvas转成base64
document.querySelector('#downimg').href = url
document.querySelector('#downimg').download = "我的持仓报告.png"
document.querySelector('#downimg').click()
})
})
},2000)
}
重点:
1. img标签的crossorigin="anonymous"
2. useCORS: true
以上2个属性缺一不可
通过上面的两行代码就能解决html2canvas图片跨域问题
如果想要了解怎么将html内容转化成图片并进行下载,可参考
vue将html内容转为图片并下载到本地
总结
到此这篇关于html2canvas图片跨域问题的文章就介绍到这了,更多相关html2canvas图片跨域内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341