【发布时间】:2011-10-26 04:40:36
【问题描述】:
我试图通过构建一个文本字符串来换行文本,并使用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 并重新附加它的各种组合,等等。
【问题讨论】:
标签: javascript svg