getBBox()
返回表示当前元素的计算边界框的DOM矩阵。
getBoundingClientRect()
返回元素的大小及其相对于视口的位置。
我们分别来尝试一下:
document.getElementById("XMLID_4335_").getBBox()

document.getElementById("XMLID_4335_").getBoundingClientRect()

通过比较发现两个方法得到的两组对象的数值并不一样,不难发现原因为:
getBBox() 获得的为元素在当前SVG坐标中的数据,而 getBoundingClientRect 则是获取了了浏览器坐标中的数据(因为SVG标签中的ViewBox属性影响,实际渲染在浏览器中的大小及位置是经过偏移和缩放的)。
两个方法的作用不仅局限在SVG元素中,童鞋们不妨试试在其他元素和特定环境中的奇妙运用。