我的代码目前将内容添加到预先存在的SVG元素。为了计算将位于文本后面的元素的大小,需要知道下面添加的文本的大小。但是,添加后元素的尺寸不可立即显示(见下文):
var svgNode; // supplied earlier in the code
var svgNs = "http://www.w3.org/2000/svg";
var textNode = document.createElementNS(this.svgNs,"text");
textNode.setAttributeNS(null,'x','0');
textNode.setAttributeNS(null,'y','0');
textNode.setAttributeNS(null,'class','node-text');
svgNode.appendChild(textNode);
我希望有一个事件来代替可用的信息,例如:
textNode.addEventListener("onrender", onNodeTextEvent); // Yeah, this event does not appear to exist. Got it.
答案 0 :(得分:0)
由于我不认为这个问题是以这种方式提出的,所以我认为我会以这种方式提出这个问题。事实证明(至少在Firefox上)在将元素添加到'svg'元素(已经是文档树的一部分)之后,边界框是有效的。
svgNode.appendChild(textNode);
var bbox = textNode.getBBox();
// ... Work with bbox
的答案