Я пытаюсь обернуть текст, getComputedTextLength
текстовую строку и используя 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
повторного добавления и так далее.