用过canvas,都知道toDataURL这个方法真好用,不只合成图片用到它,压缩图片也用到它。但有一个问题,就是图片源不能跨域,否则会报错:canvas
Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
解决方法,相信你们都知道了,就是在图片img加上
crossOrigin
属性,赋值为Anonymous
。但还有一个关键的地方,就是设置crossOrigin
要在设置src
地址以后,不然是没有效果的:跨域
var img = new Image(); img.src = '.....'; //顺序不能错 img.setAttribute("crossOrigin",'Anonymous');