html2canvas图片跨域问题图文详解
阿wei程序媛 人气:0今天遇到的一个需求,就是将自己写的html内容转化成图片,并下载到本地,功能实现了,但是有一个小问题,就是我们后端给我返回的图片,我下载的时候拿不到
1.html写出来的样式
2.利用html2canvas插件下载下来的图片
出现的问题:不显示 后端返回给我的图片
html2canvas图片跨域问题,是由于canvas自身的设计,加载的是本地的资源,对跨域资源默认是不加载的。
3.解决方法
<img :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内容转化成图片并进行下载,可参考
总结
加载全部内容