我试图通过构建文本字符串并使用getComputedTextLength
来确定文本是否超出允许的宽度,以实现文本换行。然而,我找不到一种简单的方法来逐步构建文本,并且能够与getComputedTextLength
配合使用。
总的想法是:
str = svgDocument.createTextNode(myText[word]); // first word on new line
word++;
obj = text.cloneNode(true); // new text element for this line
obj.appendChild(str);
svgDocument.documentElement.appendChild(obj); // reqd for getComputedTextLength?
for( ; word < myText.length; word++) {
next_width = obj.getComputedTextLength(); // get current line width
if(next_width >= extent)
break;
str += " "; // add next word to the line
str += myText[word];
...
}
有人能告诉我如何让这个工作起来吗?假设str
是复制而不是在obj
中被引用的,但是我也尝试了将obj.removeChild(str)
和obj.appendChild(str)
放在循环中,但是appendChild
会崩溃。我还尝试过各种组合,移动documentElement.appendChild
,删除obj
并重新附加它等等。