Html 从浏览器下载动态生成的SVG文件

Html 从浏览器下载动态生成的SVG文件,html,svg,Html,Svg,如果我使用HTML SVG元素创建图像,那么我可以将其作为SVG文件下载给用户。例如,我可能希望加载一个SVG图像,对其应用一些基本转换,添加一些文本,然后让用户下载结果作为矢量图像 可能吗?我一直在做一些类似的画布,但一直在努力创建一个矢量图像。今天早上,当我浏览SVG元素时,我没有意识到SVG元素的用途如此广泛,但如果我能做到以上几点,那就太好了。使用以下工具的简单解决方案: 尽管它可以工作,但当点击链接时,浏览器暂停了几秒钟 这似乎是最简单的解决方案,应该与所有现代浏览器兼容。然而,它有一

如果我使用HTML SVG元素创建图像,那么我可以将其作为SVG文件下载给用户。例如,我可能希望加载一个SVG图像,对其应用一些基本转换,添加一些文本,然后让用户下载结果作为矢量图像

可能吗?我一直在做一些类似的画布,但一直在努力创建一个矢量图像。今天早上,当我浏览SVG元素时,我没有意识到SVG元素的用途如此广泛,但如果我能做到以上几点,那就太好了。

使用以下工具的简单解决方案:

尽管它可以工作,但当点击链接时,浏览器暂停了几秒钟


这似乎是最简单的解决方案,应该与所有现代浏览器兼容。然而,它有一些明显的开销。如果其他人知道不同的解决方案(可能使用BLOB或类似的解决方案),请添加此处作为另一个答案

是的,这是可能的。他们在highcharts.com上做这件事。您可以将图表导出为svg。例如:您可以在右上角单击看起来像是相互下面的一些行。您可以选择导出到SVGawesome,至少我知道这是可能的,因此值得尝试。这是否回答了您的问题?酷,我去看看!
var svg_root = document.getElementById('your_svg_root_element_here');
var svg_source = svg_root.outerHTML;
var svg_data_uri = 'data:image/svg+xml;base64,' + btoa(svg_source);
var link = document.getElementById('anchor_element');
link.setAttribute('href', svg_data_uri);