canvas.toDataURL报错: Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement'

古城微笑少年丶 2022-02-15 02:55 1992阅读 0赞

报错
用canvas的 toDataURL 方法将图片转为base64时报错,报错信息如下所示:
在这里插入图片描述

原因
度娘了下发现是 图片和网站域名不一致,导致跨域出现的问题;

解决办法
图片设置 crossOrigin属性:img.setAttribute(“crossOrigin”,‘anonymous’)

完整代码

  1. <canvas id="myCanvas" width="200" height="200"></canvas>
  2. <script type="text/javascript">
  3. var canvas=document.getElementById("myCanvas");
  4. var ctx = canvas.getContext("2d");
  5. img = new Image();
  6. img.setAttribute("crossOrigin",'anonymous');//需要放在图片赋值前,否则部分浏览器会报错
  7. img.src = "images/car1.jpg";
  8. img.onload=function(){
  9. ctx.drawImage(img,0,0,100,100);
  10. canvas.toDataURL("image/jpeg");
  11. }
  12. </script>

发表评论

表情:
评论列表 (有 0 条评论,1992人围观)

还没有评论,来说两句吧...

相关阅读