2009-07-14 156 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