0

语境 :

我有一个 svg 图形,其中包含指向外部页面的链接。如果我直接在 Firefox 或 IE 中打开它,链接正确地转到其他 URL。

我想在 xWiki 页面中插入图形。简单的方法:Image/Attached image...在 wisiwig 编辑器[[image:foo.svg||height="..." width="..."]]中生成 xwiki 2.1 源代码,但是......链接不再可点击。

问题 :

如何以 svg 中的链接仍处于活动状态的方式插入 svg 文档?

最小的例子:

<svg  xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink">
    <rect x="0" y="0" height="130" width="120"
          style="stroke:#000000; fill: #ffffff"/>
    <rect x="10" y="10" height="50" width="100"
          style="stroke:#ff0000; fill: #0000ff"/>
    <a xlink:href="http://www.google.fr">
	<rect x="10" y="70" height="50" width="100"
	      style="stroke:#ff0000; fill: #00ff00"/>
    </a>
</svg>

如您所见,底部的绿色矩形包含指向 google 的链接。但是当我将它插入 xwiki 页面时,该链接未激活。我查看了生成的 HTML,发现 svg 包含在<img>标签中,我认为这是链接不活跃的原因。但我找不到如何让它工作

参考 :

我正在使用 6.4.4 版本的 xwiki 和 2.1 xwiki 语法,但我会接受版本 7 的解决方案或 xwiki 页面的其他语法

4

1 回答 1

1

问题不在于 XWiki,而在于浏览器处理 SVG 作为<img>标签目标的方式。您可以尝试使用简单的 HTML:

<html>
  <body>
    <image src="foo.svg"/>
  </body>
</html>

那也不能点击。

您可以改为嵌入 SVG:

<html>
  <body>
    <svg  xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink">
      <rect x="0" y="0" height="130" width="120"
          style="stroke:#000000; fill: #ffffff"/>
      <rect x="10" y="10" height="50" width="100"
          style="stroke:#ff0000; fill: #0000ff"/>
      <a xlink:href="http://www.google.fr">
        <rect x="10" y="70" height="50" width="100"
              style="stroke:#ff0000; fill: #00ff00"/>
      </a>
    </svg>
  </body>
</html>

如果您可以在 wiki 文档中复制 SVG 文件的内容,那么您可以{{html clean="false"}}在其周围使用包装器:

Some **wiki content**

{{html clean="false"}}
<svg ....>
</svg>
{{/html}}

Some __other wiki content__.

如果没有,那么你应该这样做:

Some **wiki content**

{{velocity}}
{{html clean="false"}}
$doc.getAttachment('foo.svg').getContentAsString('UTF-8')
{{/html}}
{{/velocity}}

Some __other wiki content__.
于 2015-07-20T18:41:55.073 回答