【问题标题】:  in Raphael JS在拉斐尔 JS
【发布时间】:2013-09-04 18:51:47
【问题描述】:

我需要做类似的事情:

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

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

【问题讨论】:

    标签: javascript raphael


    【解决方案1】:

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

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

    已证明可以正常工作here

    【讨论】:

    • 谢谢!你太棒了!您还知道如何访问单个 SVG 元素吗?
    • 我没那么棒——我通过在别处以不同的形式提出这个问题来了解这个问题的答案 =) 在任何情况下,您都可以通过引用来访问与 Raphael 对象关联的 svg 元素element.node。干杯!
    【解决方案2】:

    虽然这似乎在某种程度上 [1] 解决了,但我遇到了 this discussion 关于同样的问题,它建议用 \u00a0 替换空格。这可以通过使用字符串函数.replace(/ /g,'\u00a0') 轻松实现。


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多