gpt4 book ai didi

javascript - 在 svg 文本元素中添加带空格的文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:38 25 4
gpt4 key购买 nike

我正在尝试向 svg 文本元素添加一些包含多个空格的文本。我完全绝望了,因为当有多个空格接一个地出现时,它们会被正确添加到元素中,但不会显示在浏览器窗口中。

这家伙在文本元素中使用了空格,当我静态复制它时它工作正常,但是当用 js 添加文本时,空格消失了!

Significant whitespace in SVG embedded in HTML

如何将带有空格的文本动态添加到 svg 中?

感谢任何答案!

    var legend = document.createElementNS("http://www.w3.org/2000/svg", "text");
var tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
// Set any attributes as desired
legend.setAttribute("id","legend");
legend.setAttribute("text-anchor", "middle");
legend.setAttribute("alignment-baseline", "hanging");
legend.setAttribute("xml:space","preserve");
tspan.setAttribute("xml:space","preserve");
tspan.setAttribute("id","tspanObj");
var myText = document.createTextNode(legendTxt);
tspan.appendChild(myText);
legend.appendChild(tspan);
legend.setAttribute("x", Math.round(this.options.windowWidth/2));
legend.setAttribute("y", this.options.upperPadding+this.options.barH+this.options.legendDist);
this.elements.jSvgElem.append(legend);

最佳答案

您需要使用 setAttributeNS 在 xml 命名空间中设置一个属性,所以在您的情况下...

legend.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space","preserve");

如果在文本上设置了 xml:space,子 tspan 将使用该值,因此您无需在您的情况下再次设置它。

关于javascript - 在 svg 文本元素中添加带空格的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com