2012-08-28 7 views
5

私のような何か実行する必要があります。ラファエルJSで 

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

をしかしプリペンド空白が表示またはテキストで として表示されません。

私が試してみた:

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

...効果なしで。

ラファエルJSでSVGのノードにアクセスするためにとにかくので、私は

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

を設定することができますあります(またはこれを解決するための他の方法はありますか?)

答えて

3

はい、あなたは間違いなくそれを適用することができます名前空間Raphaelによって管理されているSVG要素に直接関連付けられています。これは簡単です:

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

hereが実証されています。

+0

ありがとうございます!あなたは素晴らしいです!あなたはまた、SVGの要素をどうやって使うのか知っていますか? –

+2

私はそれほど素晴らしいとは言えません - この質問に対する答えは、別の場所で別の形で尋ねることで学びました=)いずれの場合でも、 'element.node'を参照することでRaphaelオブジェクトに関連付けられたsvg要素にアクセスできます。乾杯! –

2

これはややようですが[1]が解決、私はむしろ\u00a0でスペースを置き換える示唆して同じ問題、についてthis discussionに出くわしました。これは、文字列関数.replace(/ /g,'\u00a0')を使用すると簡単に実現できます。


与えられたリンク内のテキストノードの先頭のスペースは、MacのSafari v.6.0.5では動作しません。他のブラウザやOSでどのように見えるのか分かりません。

関連する問題