Dom 获取<;的边界框;使用>;外部参照
我正在编写一个应用程序,它使用D3制作一些SVG图表。此应用程序在图表上呈现大量注释 注释显示为图标,因此我创建了一个外部XML文件,其中包含Dom 获取<;的边界框;使用>;外部参照,dom,d3.js,svg,Dom,D3.js,Svg,我正在编写一个应用程序,它使用D3制作一些SVG图表。此应用程序在图表上呈现大量注释 注释显示为图标,因此我创建了一个外部XML文件,其中包含部分中定义的图标,并通过插入元素引用它们,如下所示: <use x="100" y="50" xlink:href="defs.xml#iconname" /> b、 xml 和铬: getBoundingClientRect = 107,107 - 107,107 getBBox = x=0,y=0 - w=0,h=0 如果我将内联放置在
部分中定义的图标,并通过插入
元素引用它们,如下所示:
<use x="100" y="50" xlink:href="defs.xml#iconname" />
b、 xml
和铬:
getBoundingClientRect = 107,107 - 107,107
getBBox = x=0,y=0 - w=0,h=0
如果我将
内联放置在同一文档中,则不会发生这种情况,并且我获得了正确的宽度和高度(尽管由于以下原因,Chrome中的x&y不正确)。但我不希望它们出现在同一个文档中,这样我就可以集中定义所有图标
我认为这是由于外部引用定义的异步特性——浏览器可能必须获取这些定义。请注意,页面是动态构造的,因此它不仅仅是等待onLoad
或发出类似事件的情况
当外部引用已加载时,有没有任何方法可以获得回调
<?xml version="1.0" standalone="no"?>
<svg width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<g id="test_icon">
<rect width="50" height="50" />
</g>
</defs>
</svg>
getBoundingClientRect = 8,8 - 8,8
getBBox = x=0,y=0 - w=0,h=0
getBoundingClientRect = 107,107 - 107,107
getBBox = x=0,y=0 - w=0,h=0