簡體   English   中英

圖像下載適用於chrome但不適用於Firefox

[英]Image download works in chrome but not firefox

我有一個將SVG下載為PNG的功能。 它在chrome中工作得很好但是在firefox中沒有觸發下載。 需要改變什么?

function downloadGraph(contextDivId){

var svgselect  = $("#"+contextDivId).children("svg")[0],
xml  = new XMLSerializer().serializeToString(svgselect);

var imgsrc = 'data:image/svg+xml;base64,'+ btoa(unescape(encodeURIComponent(xml)));
var img = '<img src="'+imgsrc+'">'; 
$("#svgdataurl").html(img);

var bbox = svgselect.getBBox()
var canvas = document.querySelector(".downloadcanv");
$(canvas).attr("width",bbox.width);
$(canvas).attr("height",bbox.height);
var context = canvas.getContext("2d");

var image = new Image;
image.src = imgsrc;

context.drawImage(image, 0, 0);

  var canvasdata = canvas.toDataURL("image/png");

  var pngimg = '<img src="'+canvasdata+'">'; 
  $("#pngdataurl").html(pngimg);

  var a = document.createElement("a");
  a.download = "Graph.png";
  a.href = canvasdata;
  a.click();
}

這可能對你有幫助。 這是一個較舊的帖子,但它可能會成功。 它為FireFox提供了不同的格式:

https://gist.github.com/jweir/706988

// Works in recent Webkit(Chrome)
 $("body").append($("<img src='data:image/svg+xml;base64,\n"+b64+"' alt='file.svg'/>"));

 // Works in Firefox 3.6 and Webit and possibly any browser which supports the data-uri
 $("body").append($("<a href-lang='image/svg+xml' href='data:image/svg+xml;base64,\n"+b64+"' title='file.svg'>Download</a>"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM