嵌入带参数的SVG对象

13

谁有思路或提示

我想在SVG标签内嵌入一个svg对象并更改此参数

HTML / SVG(不进行)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <title>Test</title>   
</head>
<body>
<svg width="2000" height="2000">
       <object type="image/svg+xml" data="lamp.svg" style="width: 450px; height:150px;">
          <param name="color" value="yellow" />
       </object>
</svg>
</body>
</html>

SVG文件 lamp.svg:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="40" height="40">
<title>lamp</title>
  <circle cx="30" cy="30" r="15" fill="param(color)" stroke-width=""/>
</svg>

在使用IMAGE标签时,无法传递标记参数。

<image x="0" y="0" width="20" height="20" xlink:href="lamp.svg"><param name="color" value="yellow" /></image>
1个回答

13

目前浏览器不支持以这种方式传递参数,尽管W3C正在开发一个SVG参数规范。该规范中的示例使用一个脚本来模拟对该特性的支持。

注意:shim param.js需要放在SVG文件中而非HTML文件中:

例如:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"
width="68" height="68">
<rect x="10" y="10" height="48" width="48" stroke="black" stroke-width="1" fill="param(color) red">
</rect>
<rect x="29" y="0" height="10" width="10" fill="black"></rect>
<text x="24" y="46" fill="param(text) black" style="font-size:32px;"
  content-value="param(number) 1">1</text>

<script type="text/ecmascript" xlink:href="param.js" /> 

</svg>

1
自2011年以来有任何更改吗? - Tomáš Zato
据我所知,浏览器方面没有任何变化。 - Spadar Shut
2
我该如何在嵌入SVG文档中指定参数值?脚本仅在SVG文件中查找参数... - kasi
1
可能作为SVG文档路径后面的URL参数。 - Jafar Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接