仅限Safari中的Canvas CORS安全性错误

时间:2016-08-04 02:08:48

标签: javascript safari cors

如何在safari中将dataURL格式('“data:image / svg + xml; base64,”')svg设置为img.src?(在chrome中没问题。)。

Safari会抛出securityError。 是否有任何方法可以使dataURL的域名正确?

var img = new Image();
img.onload = myLoader;
img.crossOrigin = 'anonymous';       
img.src = "data:image/svg+xml;base64,...............";
var canvas = document.createElement('CANVAS');
var context = canvas.getContext('2d');
context.drawImage(img, 0, 0);
console.log(canvas.toDataURL());

1 个答案:

答案 0 :(得分:3)

这可能是因为您的SVG文档中有<foreignObject>个元素。

出于安全原因,Safari v.9 +会在绘制此元素时污染画布。

除了从SVG中删除它之外没有解决方法; - )

Ps:在使用任何svg之后,Edge之前的IE也会污染画布。