SECURITY_ERR:DOM异常18在调用Canvas的toDataURL方法时

sar*_*han 8 javascript safari html5 internet-explorer mobile-safari

尝试从在Internet Explorer和Safari浏览器上绘制SVG图像的画布检索数据URL时,我收到以下错误,而其他人正常工作.

此外,SVG图像包含一些<image>元素,其xlink:href属性设置为从用户的文件系统读取的图像作为数据URL.由于这些图像不在不同的域上,因此在尝试获取绘制SVG图像的画布的dataURL时,我无法想到为什么会抛出此错误.提前致谢.

SECURITY_ERR:DOM异常18:试图突破用户代理的安全策略."

Cad*_*lle 4

我可以使用我制作的测试用例在 Internet Explorer 11 中确认此问题:
http://jsfiddle.net/tsbXW/

这是 Microsoft 正在解决的 Internet Explorer 的已知限制: https:
//connect.microsoft.com/IE/feedback/details/828416/cavas-todataurl-method-doesnt-work-after-draw-svg-file-到画布

正如错误报告所示,绘制到画布中的任何SVG 图像都会污染画布,从而导致SecurityError调用 toDataURL() 时出现错误。

无论如何,该错误报告的测试用例在 Safari 7.0.5 中也不起作用(尽管据称 Apple 已在 Safari 8 中修复了该问题)。此外,由于Bug 672013 - 允许将 SVG 作为图像绘制到画布中而不将其标记为只写,该测试用例直到版本 11 才在 Firefox 中运行。