Svg:textノードがあり、その中にHTMLコードを追加したい。実際、私のコードは次のとおりです。
<text x="10" y="54" text-anchor="start" class="barLegend">Hello!</text>
そして、私はこのようなものを置きたいです:
<text x="10" y="54" text-anchor="start" class="barLegend"><a href='www.gmail.com'>Gmail</a></text>
もちろん、リンクを機能させたいのですが、すべてのHTMLを表示しているだけです。
何か案が?
ここを見てください:
SVG foreignObjectタグを使用すると、非SVGコンテンツをページに混在させることができます。たとえば、SVG要素の途中にHTMLをドロップできます。
SVGを使用しない理由<a>
この場合の要素?ただし、hrefはxlink:hrefにする必要があることを忘れないでください。例えば。
<text x="10" y="54" text-anchor="start" class="barLegend"><a xlink:href='http://www.gmail.com'>Gmail</a></text>
SVGアニメーション要素、説明要素(<title>
または<desc>
)、テキストコンテンツの子要素(<tspan>
または<textPath>
)またはSVG <a>
要素は、テキスト要素の子として許可されます。
foreignObject
タグを使用する必要があります。次に例を示します。
<foreignObject width="100" height="50"
requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML">
<body xmlns="http://www.w3.org/1999/xhtml">
<a href='www.gmail.com'>Gmail</a>
</body>
</foreignObject>
こちらもご覧ください http://www.w3.org/TR/SVG/extend.html および https://developer.mozilla.org/en/SVG/Element/foreignObject
ここでの別の解決策は、アイテムにイベントを配置し、javascriptを使用してターゲットURLを開き、タグをまったく使用しないことです。