如何将SVG对象插入带链接的HTML?

时间:2010-01-18 18:59:40

标签: html svg

我不想添加到svg的链接(这是不可能的,因为我没有提供svg),但是想要添加像<a href=""><img src="foo.svg"/></a>这样的链接。只有这次它不是img,而是object(所以我可以包含svg)。

它适用于某些浏览器,但例如不适用于Firefox。如何做这样的事情的默认想法是什么?

3 个答案:

答案 0 :(得分:11)

在Firefox <object>中捕获所有点击,并且不会让它们“冒泡”出SVG文档。一个明智的解决方法是使用另一个首先获得点击的元素来覆盖SVG。

幸运的是,这可以通过纯CSS完成:

a {position:relative; display:inline-block;}
a:after {content:""; position:absolute; top:0; left:0; bottom:0; right:0;}

您可能希望将:-moz-any-link伪类添加到选择器以使其成为仅Gecko。

答案 1 :(得分:3)

将链接放在svg文件中,例如:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <a xlink:href="">
  ...
 </a>
</svg>

答案 2 :(得分:0)

使用svgweb,您可以嵌入任意SVG跨浏览器,并通过常规DOM方法进行修改。这包括将事件侦听器附加到SVG的任何部分。

svgweb主页:
http://code.google.com/p/svgweb/

svgweb quickstart(还讨论了添加事件监听器):
http://codinginparadise.org/projects/svgweb/docs/QuickStart.html

即使你不能用这种方式把它放在传统的锚标签中(我还没试过,它可能有用),你至少能够处理点击事件并根据它们进行导航,这真的很棒你在追求什么。