Canvas toDataUrl在Firefox浏览器上生成“ AAAA ...”,但可在Chrome / Safari上运行

时间:2018-09-05 10:05:13

标签: javascript firefox svg html5-canvas png

我有一个要转换为PNG的SVG。它仅包含文本,实际上是D3 wordcloud。这是代码:

var img = document.createElement( "img" );
img.setAttribute( "src", "data:image/svg+xml;base64," + btoa(injected) );

img.onload = function() 
{
    ctx.drawImage( img, 0, 0, canvas.width, canvas.height );

    var uri = canvas
        .toDataURL('image/png');

    console.log(ctx);

    var link = document.createElement("a");
    document.body.appendChild(link);
    link.download = "wordcloud.png";
    link.href = uri;
    link.click();
};

这在Chrome和Safari上可以正常工作,产生200kb的PNG。在Firefox上,它会生成5kb的空白图片。我已经检查过要作为图像源输入的数据(它与两个浏览器都匹配)。一切正常,直到到达toDataUrl并产生奇怪的结果为止。

在其他浏览器上,结果很好,所有数据都在那里。但是在firefox上,您会得到一个非常短的链接,其中大部分都是重复的 AAAAA

是否缺少我要添加的东西,以使其与FF兼容?我看过其他一些与我类似的问题,但找不到任何解决方法

0 个答案:

没有答案