Javascript 有没有办法在网页中制作交互式独立SVG?

Javascript 有没有办法在网页中制作交互式独立SVG?,javascript,d3.js,svg,Javascript,D3.js,Svg,当前用于在web浏览器中创建“交互式svg”的库实际上使用javascript动态地操作页面中的svg对象,但实际上没有将svg动画所需的完整javascript嵌入svg标记本身。像d3.js、protovis、svg.js等库 但也可以创建独立的交互式SVG,例如Brendan Gregg的flamegraph工具,例如: 有没有办法在网页中创建一个独立的交互式SVG?当然,您可以生成交互式SVG服务器端(例如,Brendan使用Perl库生成交互式SVG),然后将其提供给用户。但我更喜欢

当前用于在web浏览器中创建“交互式svg”的库实际上使用javascript动态地操作页面中的svg对象,但实际上没有将svg动画所需的完整javascript嵌入svg标记本身。像d3.js、protovis、svg.js等库

但也可以创建独立的交互式SVG,例如Brendan Gregg的flamegraph工具,例如:

有没有办法在网页中创建一个独立的交互式SVG?当然,您可以生成交互式SVG服务器端(例如,Brendan使用Perl库生成交互式SVG),然后将其提供给用户。但我更喜欢生成SVG作为生成网页本身的一部分,即使用Php或Ruby,或者更好的是,使用Javascript库生成客户端。无论哪种情况,关键功能的目标都是能够右键单击下载定制的交互式SVG


注意:d3.js方法的好处是动画可以在SVG和页面上的其他DOM元素之间集成,或者与SVG触发动态AJAX请求进行交互。我并不期望独立的SVG能够做这些事情。

如评论中所述,您可以使用
数据:
URI将交互式SVG内联到
DOM元素的
src=

不幸的是,当前的web浏览器没有右键单击->下载
元素,只有


您是否尝试过
?@Dai澄清了这个问题,我正在尝试动态生成交互式SVG。Javascript将是理想的,但将其作为网页服务语言(PHP/Ruby/etc)的一部分也是可以接受的。您仍然可以通过将动态构建的SVG序列化为
数据:
URI并使用DOM使
src=“”
“使用d3需要大约3行代码更改…”-为什么不将该代码作为参考?@Zachsauier添加了一个示例
 <embed class="mygraph" src="data:image/svg+xml;utf8, ... svg code ...>
 <a download class="downloadLink">Download this graph.</a>
 <script>
 document.querySelector(".downloadLink").href = document.querySelector(".mygraph").src;
 </script>