前端 canvas 画布污染的问题
使用 js 构建 Canvas
,之后调用HTMLCanvasElement.toDataURL()
方法,如果绘制过程中添加了图片,也就是使用CanvasRenderingContext2D.drawImage()
方法,并且图片地址是外站的,就会报下面的错误:
Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
解决的方法是允许图片跨域,跨域的设定和使用fetch
跨域设定是一样的。对于不需要导出图片的场景,将 canvas 元素直接放置在网页上是没有这个问题。