当我尝试从在 Internet Explorer 和 Safari 浏览器上绘制 SVG 图像的画布检索数据 URL 时,出现以下错误,而其他浏览器都正常工作。
此外,SVG 图像还包含一些<image>
其元素xlink:href
属性设置为从用户文件系统读取的图像作为数据 URL。由于这些图像并不位于不同的域中,因此我想不出在尝试获取绘制 SVG 图像的画布的 dataURL 时抛出此错误的任何原因。提前致谢。
SECURITY_ERR:DOM异常18:尝试突破
用户代理的安全策略。”
我可以使用我制作的测试用例在 Internet Explorer 11 中确认此问题:
http://jsfiddle.net/tsbXW/ http://jsfiddle.net/tsbXW/
这是 Microsoft 正在解决的 Internet Explorer 的已知限制:
https://connect.microsoft.com/IE/feedback/details/828416/cavas-todataurl-method-doesnt-work-after-draw-svg-file-to-canvas https://connect.microsoft.com/IE/feedback/details/828416/cavas-todataurl-method-doesnt-work-after-draw-svg-file-to-canvas
正如错误报告所示,any绘制到画布中的 SVG 图像会污染画布,从而导致SecurityError
当调用 toDataURL() 时。
就其价值而言,错误报告是测试用例 http://fiddle.jshell.net/zhongjian2008/MDeBp/1/show/在 Safari 7.0.5 中也不起作用(尽管据称 Apple 已在 Safari 8 中修复了该问题)。此外,该测试用例在 Firefox 版本 11 之前无法运行,因为Bug 672013 - 允许将 SVG 作为图像绘制到画布中,而不将其标记为只写 https://bugzilla.mozilla.org/show_bug.cgi?id=672013.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)