2009-07-14 219 views
1

我需要在svg图表中有链接的文本。下面是我做的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> 

我预期命名空间htmlhtml:a标签会导致栏文本的妥善处理。但我得到的是该栏不显示。正如答案中所建议的,我可以使用svg:a元素,但我不明白为什么我的方法无效。我期望浏览器HTML呈现器能够踢入并处理DOM树的那部分。

回答

6

你想要<a xlink:href="http://example.org/">。你看,它也是一个SVG元素。

回复:XHTML链接。我相信一个更好的问题是,你为什么期望它能够工作,或者需要它? SVG拥有自己完美合适的链接元素,它得到了广泛的实施并得到了很好的支持。

正如评论中提到的,它与退出SVG渲染上下文有关;这可能也可能不是这种情况,更可能是由实现定义的行为。即便如此,也不应该认为它可能在未来的任何实现中工作,特别是考虑到具有相同功能的本地标记的存在。

+0

它的工作,谢谢,但在任何情况下,我不明白为什么它不适用于其他情况。从技术上讲,我希望html渲染器能够踢进并处理DOM树的那部分。 – 2009-07-14 13:42:21