为了正确回答这个问题,我想要:
- 将文档内的SVG文件转换为data URL
- 将其加载到
<img>
中 - 将该
<img>
绘制到<canvas>
中 - 将该
<canvas>
转换为PNG数据URL - 将该数据URL加载到一个图像中。
我在这里有一个尝试示例:
http://phrogz.net/SVG/svg_to_png.xhtml
在Firefox中,在第3步尝试将图像绘制到画布上时,我会得到(NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage]
的错误信息。
为什么我会在Firefox中遇到这个错误,或者如何解决它?
在Chrome中,在第4步尝试调用toDataURL()
时,我会得到一个SECURITY_ERR
异常。
为什么我会在Chrome中遇到这个错误,或者如何解决它?
WhatWG规范指出,来自另一文档或脚本中的data:URL生成的图像应该与该文档具有相同的原点。这个测试中的所有数据都来自同一个文档。
foreignObject
周围的严格安全问题。(在解决Firefox问题之前不会将此发布为答案。) - Phrogz<canvas>
上,因为那样可以正常工作?(这个问题有自己的问题。) - Phrogz