在 Raphael JS 中的应用

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

(还有其他什么方法可以解决这个问题吗?)
2个回答

3

是的,您可以直接将带命名空间的属性应用于Raphael管理的SVG元素。操作非常简单:

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

这里已经证明了其功能。


谢谢!你太棒了!你也知道如何访问单个SVG元素吗? - Niels Bosma
2
我并不是那么厉害——我是通过在其他地方以不同的形式提问来获得这个问题的答案的 =) 无论如何,您可以通过引用 element.node 来访问与 Raphael 对象相关联的 svg 元素。干杯! - Kevin Nielsen

2
虽然这个问题似乎已经被解决[1],但我遇到了这个讨论,它建议用\u00a0替换空格。使用字符串函数.replace(/ /g,'\u00a0')可以很容易地实现这一点。
1 在给定链接中文本节点的前导空格在 Mac Safari v.6.0.5 中无法工作。 我不确定其他浏览器和操作系统的情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接