Javascript 仅Safari中的Canvas CORS安全错误
如何在safari中将dataURL格式(“'data:image/svg+xml;base64,”)svg设置为img.src?(在chrome中可以) Safari将抛出securityError。 有什么方法可以使dataURL的域正确吗Javascript 仅Safari中的Canvas CORS安全错误,javascript,safari,cors,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 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());
这可能是因为SVG文档中有一个
元素
出于安全原因,在画布上绘制此元素时,Safari v.9+将污染画布
除了从SVG中删除它之外,没有其他解决方法;-)
Ps:Edge之前的IE也会污染画布,一旦任何svg被绘制到画布上。是的,svg中有一个元素。我只想将dom转换为svg,然后再转换为png文件。好吧,你不能这样做,Safari中不行,IE Edge之前也不行,而且其他浏览器的限制非常糟糕。这是一个黑客行为,如果您正在阅读有关它的MDN文章,那么应该从那里删除它。要实现所需,请使用实际绘制元素的库,例如