2009-07-14 6 views
1

svg 그래프 안에 링크 된 텍스트가 있어야합니다. 여기에 내가 html의 네임 스페이스를 예상하고 html:a 태그가 줄 텍스트의 적절한 취급을 초래할 것 웹 링크 in 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

먼저 HTML 컨텐트를 처리하려면 SVG 컨텐트를 foreignObject로 끝내야합니다. –