我正在使用html2canvas从一组HTML元素生成图像。但是,其中一个元素具有background-image
属性,其图像是从不同的原点加载的。这会导致画布在生成时受到污染,导致我的图像生成失败并出现以下错误
DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
尝试在返回的画布上调用toDataUrl()
时。
图片的Access-Control-Allow-Origin
标头设置为*
,所以我觉得应工作但是错误当然不会让我继续下去。
有很多关于使用image.crossOrigin = 'anonymous'
将不同来源的图像加载到画布中的问题,但没有提到使用CSS加载为背景图像的图像,所以我想知道如何处理这个问题?
答案 0 :(得分:1)
不知道它是否仍然存在问题,但我遇到了与CSS background-image相同的问题,这会产生同样的错误。
使用html2canvas option useCORS: true
修正了它。除此之外,选项allowTaint
的默认值也很重要false