веб-ссылка в SVG - PullRequest
       38

веб-ссылка в SVG

1 голос
/ 14 июля 2009

Мне нужно иметь связанный текст внутри графика 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>

Я ожидал, что пространство имен для html и тег html:a приведут к правильной обработке текста строки. но то, что я получаю, это то, что панель не отображается. Как предлагается в ответе, я могу использовать элемент svg:a, но я не понимаю, почему мой подход не работает. Я ожидаю, что браузерный HTML-рендерер включит и обработает эту часть дерева DOM.

1 Ответ

6 голосов
/ 14 июля 2009

Вы хотите <a xlink:href="http://example.org/">. Видите ли, это тоже элемент SVG.

Re: ссылка XHTML. Я полагаю, что лучше спросить: почему вы ожидаете, что это сработает или понадобится? SVG имеет собственный идеально подходящий элемент ссылки, который широко реализован и хорошо поддерживается.

Как было предложено в комментарии, это связано с выпадением контекста рендеринга SVG; это может или не может иметь место, скорее всего, это поведение, определяемое реализацией. Несмотря на это, не следует думать, что он будет работать в любой будущей реализации, особенно с учетом наличия встроенного тега с идентичной функциональностью.

...