SVG外部对象不显示SVG命名空间

时间:2016-01-06 10:10:23

标签: svg

我有以下SVG文件。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<!--<svg width="100%" height="500">-->
<svg id="deviceImage" class="DeviceImage" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMinYMin" currentScale="1" width="3000px" height="1500px" oncontextmenu="return false">

  <script type="text/ecmascript">
    <![CDATA[
    
    function ExmpleFunction(event, componentGroup)
    {
       alert('Hello World');
    }  
    
    ]]>
  </script>
  
  <defs>
    <!-->>>TestShape>>>-->
    <symbol id="TestShape">
      <polygon points="1,1 650,1 630,175 21,175"></polygon>
    </symbol>
    <!--<<<TestShape<<<-->
  </defs>

  <!--TestShape-->
  <g id="p1" transform="translate(50, 35)" visibility="visible">
    <use  id="p2Basic" xlink:href = "#TestShape"/>
  </g>

  <rect x="500" y="10" width="100" height="150" fill="blue"/>

  <foreignObject x="0" y="0" width="200" height="250">
    <div xmlns="http://www.w3.org/1999/xhtml">
      <embed id="wert" src="TestModule-Basic.svg" type="image/svg+xml" />
    </div>
  </foreignObject>

</svg>

目的是嵌入另一个支持内部脚本的svg图像(所以这不能作为图像完成)所以我使用的是foreignObject

运行时,上面的代码显示测试形状和矩形,但它不会在foreignObject中显示svg图像。

通过实验我发现如果从主SVG节点中删除xmlns =“http://www.w3.org/2000/svg”,则会显示foreignObject中的svg图像,但测试形状和矩形是没有显示。我还在脚本标记中看到文本作为图像的一部分。

我显然需要包含svg命名空间,但我不确定如何同时显示它们?

所有帮助表示赞赏!

0 个答案:

没有答案