我正在尝试使用d3 v4为SVG元素添加背景颜色。为了做到这一点,我想我必须得到
的参考text.node().getBBox()
所以我尝试了以下......
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
...
focus.append("circle")
.attr("r", 4.5);
var text = focus.append("text")
.attr("x", 9)
.attr("dy", ".35em");
alert(text);
var svgrect = text.node().getBBox();
alert(svgrect);
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.setAttribute("x", svgrect.x);
rect.setAttribute("y", svgrect.y);
rect.setAttribute("width", svgrect.width);
rect.setAttribute("height", svgrect.height);
rect.setAttribute("fill", "yellow");
svg.node().insertBefore(rect, text);
但是虽然我看到了第一个警报,但我没有看到第二个警报。在Firefox上,我收到错误
NS_ERROR_FAILURE:
没有任何进一步的信息。如何在Firefox上获得边界框?