我的HTML页面中有一个简单的按钮,用于下载SVG文件。这在Chrome浏览器中工作正常,但在Firefox中文件只有1行(第一行)。

$("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中获取整个文件吗?

最佳答案

您也可以尝试:

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和文件名。

09-25 19:06