在Raphael JS

时间:2012-08-28 09:02:48

标签: javascript raphael

我需要做类似的事情:

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");

(还有其他方法可以解决这个问题吗?)

2 个答案:

答案 0 :(得分:3)

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

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

证明具有实用性here

答案 1 :(得分:2)

虽然这似乎有点 [1] 已解决,但我遇到了this discussion关于同一问题的问题,而是建议用\u00a0替换空格。这可以通过使用字符串函数.replace(/ /g,'\u00a0')轻松实现。

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