javascript - SVG hent tekst element bredde


Jeg jobber med litt ECMAScript/JavaScript for en SVG-fil og trenger å få width og height for et text-element slik at jeg kan endre størrelsen på et rektangel som omgir det. I HTML ville jeg kunne bruke offsetWidth og offsetHeight-attributtene på elementet, men det ser ut til at de egenskapene ikke er tilgjengelige.

Her er et fragment som jeg trenger å jobbe med. Jeg trenger å endre bredden på rektangelet hver gang jeg endrer teksten, men jeg vet ikke hvordan jeg skal få den faktiske bredden (i piksler) til tekst-elementet.

<rect x="100" y="100" width="100" height="100" />
<text>Some Text</text>

Noen ideer?

Svar #1

var bbox = textElement.getBBox();
var width = bbox.width;
var height = bbox.height;

og deretter sette rektangelets egenskaper tilsvarende.

Lenke: getBBox() i SVG v1.1-standarden.

Svar #2

document.getElementById('yourTextId').getComputedTextLength();

virket for meg i

Relaterte artikler