5

我正在拍摄 SVG 图像,将其绘制到画布上,并尝试通过 toDataURL 将其导出,但 Chrome 向我抛出了 DOM Exception 18 安全错误。我知道问题是因为我使用数据 URI 方案(data:image/svg+xml;base64)将 SVG 图像绘制到画布上,所以我猜浏览器将其视为跨域(即安全问题),但我想不出任何其他方法可以将我的 SVG 内容放到画布上。我无法托管它,因为 SVG 内容是动态的,并且在需要通过 toDataURL 导出之前先进行操作。

我阅读了此处提出的其他一些类似问题,但找不到任何解决我的问题的方法。

4

2 回答 2

3

在 Chrome 中,将任何SVG 绘制到 a 上canvas都会污染它,因为 SVG可能包含 a foreignObject这是错误。Chrome 还存在数据 URI 方案和canvas的问题,因此您遇到了双重打击。

于 2012-12-11T22:31:21.087 回答
0

我也有同样的问题。作为一种解决方法,我使用SVG to HTML5 Canvas Converter将 svg 转换为画布调用。

于 2014-05-09T17:53:10.057 回答