2016-05-04 6 views
1

HTMLページにSVGファイルをダウンロードするためのボタンがあります。これはChromeでうまく動作しますが、Firefoxではファイルが1行(最初のもの)です。JavascriptのダウンロードはFirefoxで停止しますが、Chromeで動作します。

$("button").click(function(){ 
    svgSource = phylocanvas.getSvgSource(); 
    console.log(svgSource); 
    if(svgSource){ 
     var hiddenElement = document.createElement('a'); 
     document.body.appendChild(hiddenElement); // Add the element to the DOM 
     hiddenElement.setAttribute("type", "hidden"); // make it hidden 
     hiddenElement.href = 'data:attachment/text,' + encodeURI(svgSource); 
     hiddenElement.target = '_blank'; 
     hiddenElement.download = '<TMPL_VAR NAME="TREENAME">.svg'; 
     console.log(hiddenElement.download); 
     hiddenElement.click(); 
    } 
}); 

Firefoxでファイル全体を取得するにはどうすればよいですか?

答えて

0

また、試すことができます。

var pom = document.createElement('a'); 
    pom.setAttribute('href', 'data:text/xml;charset=utf-8,' + window.encodeURIComponent(textContent)); 
    pom.setAttribute('download', filename); 

var event = document.createEvent('MouseEvents'); 
    event.initEvent('click', true, true); 

pom.dispatchEvent(event); 

はのTextContentとファイル名を交換してください。

+1

ありがとう、これは両方のブラウザで動作しました。 –

0

http要求には、ダウンロード属性と同等のヘッダー変数ContentDispositionを含めることができます。私が知る限り、FirefoxとChromeの唯一の違いは、Firefoxではヘッダー属性が優先され、Chromeではダウンロード属性が優先されることです。おそらくChromeではダウンロード属性が使用され、ファイルはそのままダウンロードされますが、Firefoxではヘッダ属性(指定されている場合)が使用され、???値は、コンテンツがsvgレンダラーを送信している間にファイルのxmlヘッダーを保存するだけです。 (ちょっと推測;-))

関連する問題