我有一个代码可以通过javascript在浏览器上将svg标记保存为png图像。此代码适用于chrome,但得到" NS_ERROR_NOT_AVAILABLE drawImage" mozila firefox中的错误。问题是什么?!
var svg = document.querySelector( "svg" );
var svgData = (new XMLSerializer).serializeToString( svg );
var canvas = document.createElement( "canvas" );
var ctx = canvas.getContext( "2d" );
var img = document.createElement( "img" );
img.onload = function() {
ctx.drawImage( img, 0, 0 );
var a = document.createElement("a");
a.download = "cat.png";
a.href = canvas.toDataURL("image/png");
a.click();
};
img.src = "data:image/svg+xml;base64," + btoa( svgData );
答案 0 :(得分:0)
我发现如果我将源svg的“path”标签中的填充颜色设置为字符串值,如“red”,“white”等,那么它的工作正常。但是如果我用十六进制代码(如“#ffccaa”)设置填充颜色,则它会因NS_ERROR_NOT_AVAILABLE(OMG)失败:(