5

我需要做类似的事情:

paper.text(Left, Top, " " + this._p.Label + ":");
paper.text(Left, Top, " " + this._p.Label + ":");

但是前面的空格不会像 文本一样显示或显示。

我试过了:

label.attr({"xml:space": "preserve"});

...没有效果。

无论如何可以访问 Raphael JS 中的 SVG 节点,以便我可以设置

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

(或者有没有其他方法可以解决这个问题?)

4

2 回答 2

3

是的,您绝对可以将该命名空间属性直接应用于由 Raphael 管理的 SVG 元素。就是这么简单:

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

在这里证明是功能性的。

于 2012-08-28T17:58:33.303 回答
2

尽管这似乎在某种程度上[1]解决了,但我遇到了关于同一问题的讨论,它建议用\u00a0. 这可以通过使用字符串函数轻松实现.replace(/ /g,'\u00a0')


1给定链接中文本节点的前导空格不适用于 Mac Safari v.6.0.5。我不确定它在其他浏览器和操作系统中的外观。

于 2013-09-04T10:51:47.583 回答