使用CSS background-image时,可能无法导出受污染的画布

时间:2016-08-31 07:20:57

标签: javascript css canvas cross-domain html2canvas

我正在使用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加载为背景图像的图像,所以我想知道如何处理这个问题?

1 个答案:

答案 0 :(得分:1)

不知道它是否仍然存在问题,但我遇到了与CSS background-image相同的问题,这会产生同样的错误。

使用html2canvas option useCORS: true修正了它。除此之外,选项allowTaint的默认值也很重要false