firefox中的NS_ERROR_NOT_AVAILABLE drawImage

时间:2014-12-08 06:28:35

标签: javascript svg drawimage

我有一个代码可以通过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 );

1 个答案:

答案 0 :(得分:0)

我发现如果我将源svg的“path”标签中的填充颜色设置为字符串值,如“red”,“white”等,那么它的工作正常。但是如果我用十六进制代码(如“#ffccaa”)设置填充颜色,则它会因NS_ERROR_NOT_AVAILABLE(OMG)失败:(