2009-07-14 9 views
1

私はsvgグラフの中にリンクされたテキストを持っている必要があります。ここで私はhtmlの名前空間を期待してhtml:aタグはバーのテキストの適切な取り扱いにつながる私はウェブリンクsvg

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<svg width="138pt" height="188pt" viewBox="0.00 0.00 138.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/1999/xhtml"> 
    <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)"> 
    <g id="node5" class="node"><title>EQ2</title> 
     <ellipse style="fill:none;stroke:black;" cx="65" cy="-18" rx="29.1851" ry="18"/> 
     <text text-anchor="middle" x="65" y="-13.9" style="font-family:Times New Roman;font-size:14.00;">foo <html:a href="http://google.com">bar</html:a></text> 
    </g> 
    </g> 
</svg> 

何をしたかです。私はバーが表示されていないということです。答えに示唆されているように、私はsvg:a要素を使うことができますが、なぜ私のアプローチがうまくいかないのか分かりません。私は、ブラウザのHTMLレンダラーが起動し、DOMツリーのその部分を処理することを期待しています。

答えて

6

あなたがほしい<a xlink:href="http://example.org/">。それはSVG要素でもあります。

Re:XHTMLリンク。私はより良い質問があると信じています、なぜあなたはそれが働くことを期待するか、それを必要としますか? SVGには、完全に適切なリンク要素があり、広く実装されており、十分にサポートされています。

コメントで示唆されているように、SVGレンダリングコンテキストからの脱落と関係しています。これが事実かもしれないし、そうでないかもしれない、それは事実実装の定義された振る舞いである可能性が高い。それでも、将来の実装では、特に同じ機能を持つネイティブタグが存在することを考慮して、動作する可能性が高いと考えるべきではありません。

+0

これはうまくいきますが、他のケースではうまくいかない理由はわかりません。技術的には、htmlレンダラーが起動してDOMツリーのその部分を処理することが期待されます。 –

+1

まず、SVGコンテンツをforeignObjectで終了して、HTMLコンテンツを処理する必要があります。 –

関連する問題