html2canvas - 解决办法之图片跨域导致的截图空白

解决方案  前期npm,import  就不用说了哈

 

1. 后端支持:图片要是cdn上的地址,并且允许图片跨域,header头中设置应为

  Access-Control-Allow-Origin:  *

2,前端配置如下   "appcode"是后台的图片地址

 <div class="capture" ref="imageDom">
     <div class="codebox">
        <img :src="appcode+'?'+new Date().getTime()" crossorigin="anonymous" alt />
     </div>
     <p>{{appname}}</p>
     <div class="photobox">
         <img :src="appphoto+'?'+new Date().getTime()" crossorigin="anonymous" alt />
     </div>
 </div>
​
  async html2picture() {
      // 将html转化为canvas
      const canvas = await html2canvas(this.$refs.imageDom, {
        useCORS: true, // 支持跨域
        logging: false //日志开关,便于查看html2canvas的内部执行流程
      });
      let baseurl = canvas.toDataURL("image/jpg"); //将canvas转化为base64的jpg(可自行设置格式)
      const a = document.createElement("a");
      // 文件名
      a.download = name | "html2canvas";
      // 设置 a href 属性
      a.setAttribute("href", baseurl);
      // 触发 a 点击事件
      a.click();
    }

​

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值