Получение текста из текстового элемента с переполненным содержимым возвращает только видимый сегмент текста
У меня есть SVG, содержащий несколько групп с текстовым элементом и немного текста. Этот текстовый элемент устанавливается в соответствии с размером его родителя, который иногда может быть несколько маленьким. Это иногда приводит к тому, что текстовый элемент содержит больше текста, чем может вместить, поэтому он естественным образом переполняется.
У меня есть цикл, который перебирает все эти группы, чтобы прочитать текст. Когда он сталкивается с переполненным текстовым элементом, он возвращает только видимый текст.
В приведенном ниже примере theTile
это группа. Также я использую SVG.js.
// If there is a text node in the SVG, collect the details from
// the content and delete it. If there isn't, move on.
const textNode = theTile.select('text');
// Check for a text node. If it exists, collect the content
// for use in positioning for the group.
let groupCoordinates;
const textNodeCount = textNode.members.length;
if (textNodeCount) {
const tileTextRaw = textNode.last().text();
… do some stuff with this text …
}
tileTextRaw
в конечном итоге возвращает "имя:Peristyle_5". Полный текст внутри этого текстового элемента на самом деле "name:Peristyle_5-top:162-left:1349-width:50-height:75"
Для наглядного примера вот текстовый элемент, который я пытаюсь прочитать в SVG:
Это SVG, с которой я работаю:
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="75" viewBox="0 0 50 75">
<title>Peristyle_5</title>
<g id="Peristyle_5">
<g>
<rect id="background-2" data-name="background" width="50" height="75" fill="#7facc7"/>
</g>
<text transform="translate(9.726 21.76)" font-size="15" font-family="OperatorMonoSSm-Book, Operator Mono SSm">nam<tspan x="0" y="18">e:P</tspan><tspan x="0" y="36">eri</tspan></text>
</g>
</svg>
Что мне не хватает?