javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > html2canvas图片跨域

html2canvas图片跨域问题图文详解

作者:阿wei程序媛

我们在进行图片保存的时候经常会发现图片跨域了,下面下面这篇文章主要给大家介绍了关于html2canvas图片跨域问题的相关资料,需要的朋友可以参考下

今天遇到的一个需求,就是将自己写的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内容转化成图片并进行下载,可参考

vue将html内容转为图片并下载到本地

总结

到此这篇关于html2canvas图片跨域问题的文章就介绍到这了,更多相关html2canvas图片跨域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文