html - 如何在主窗口中打开嵌入式 SVG 文件中的链接,而不是在单独的对象中

标签 html svg

我有一个包含 URL 链接的 SVG 文件(由 Graphviz 生成)。我希望这些链接可以点击。首先我尝试了

<img src="path/to/my.svg"/>

显示图像正常但链接不可点击。更改为对象:

 <object data="/path/to/my.svg" type="image/svg+xml">

使链接可点击,但当用户点击它们时,新页面会在对象内打开。有什么方法可以让链接在主窗口中打开?

这是使用 firefox 5.0,但如果您知道任何跨浏览器差异,我将不胜感激!

最佳答案

首先,如果您将 SVG 嵌入为 <img> ,浏览器不会打开链接,也不会在 <img> 中运行脚本,因为,好吧,你嵌入了一张图片,你的图片很可能会出现在 <a> 中。 ,并且您不能将链接放在链接中。

要在新标签页中打开链接,您可以使用 target属性,如 HTML 或特定于 xlink 的 xlink:show值为 new 的属性. SVG 规范 says以下内容:

[xlink:show] attribute is provided for backwards compatibility with SVG 1.1. It provides documentation to XLink-aware processors. In case of a conflict, the target attribute has priority, since it can express a wider range of values.

以及 target 的值属性可以是:

  • _替换
  • _self
  • _parent
  • _top
  • _空白

因此,在你的 SVG 中你需要这样写:

<a xlink:href="http://example.com" target="_blank">[...]</a>

但目前所有能够显示 SVG 的浏览器都支持 xlink:showtarget属性(虽然我没有在 IE9 中测试过)。

关于html - 如何在主窗口中打开嵌入式 SVG 文件中的链接,而不是在单独的对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7008355/

相关文章:

javascript - 计算 45 度捕捉的坐标

css - 数据 URI : Changing color & defining content area

php - html 字符集在 2 个服务器上工作不同

php - php 上的动态表单用于插入输入

javascript - 努力让悬停的第 n 个 child 在 IE 中工作

Android:在 WebView 中缩放 SVG

javascript - 添加和删​​除链接中的类 d3 force layout

svg - html2canvas可以在页面中呈现svg吗?

javascript - 在行中布局 div,然后在列中

javascript - 具有字符串值的 PHP 变量与来自 javascript 的具有 html id 值的 PHP 变量不相等?