如何在Firefox上获取SVG文本节点的边界框?

时间:2017-08-02 16:27:03

标签: javascript firefox d3.js svg rect

我正在尝试使用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上获得边界框?

0 个答案:

没有答案