Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅Safari中的Canvas CORS安全错误_Javascript_Safari_Cors - Fatal编程技术网

Javascript 仅Safari中的Canvas CORS安全错误

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,......

如何在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());

这可能是因为SVG文档中有一个
元素

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

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


Ps:Edge之前的IE也会污染画布,一旦任何svg被绘制到画布上。

是的,svg中有一个元素。我只想将dom转换为svg,然后再转换为png文件。好吧,你不能这样做,Safari中不行,IE Edge之前也不行,而且其他浏览器的限制非常糟糕。这是一个黑客行为,如果您正在阅读有关它的MDN文章,那么应该从那里删除它。要实现所需,请使用实际绘制元素的库,例如