D3js页面:如何用独立的svg文件替换topojson生成的svg?

时间:2014-04-06 05:56:15

标签: svg d3.js topojson

给定a D3js script,使用topojson生成SVG时,交互式功能很像我想要的。

鉴于我,在我这边,没有topojson而是 SVG文件,我希望在其上重复使用相同的交互功能。

我应该如何处理,以便我的D3js代码加载我的SVG文件,而不是从topojson生成一个?

我当然会提供严格编码的SVG文件,其中包含合适的ID和语法。


想法:我想我应该替换

d3.json("/mbostock/raw/4090846/us.json", function(error, us) { 
  // further SVG generator code here
});

通过加载和放置我的SVG文件生成SVG代码,但是如何处理?使用什么代码?

1 个答案:

答案 0 :(得分:1)

您可以直接在HTML中包含SVG文件,无需在Javascript中加载它。例如:

<object id="mySVG" data="my.svg" type="image/svg+xml"></object>

唯一需要记住的是,您最终在文档中有两个DOM(主HTML和嵌入式SVG),CSS选择器不跨越DOM边界。也就是说,d3.select("#IDinSVG")可能不起作用,但d3.select(d3.select("#mySVG").node().getDocumentElement()).select("#IDinSVG")之类的内容应该是。