当前位置: 代码迷 >> XML/SOAP >> 网页中 svgdocument 的有关问题
  详细解决方案

网页中 svgdocument 的有关问题

热度:445   发布时间:2012-02-26 20:19:44.0
网页中 svgdocument 的问题
有个网站里一个页面用到svg绘图 
aspx中引用svg的地方这么写的:
  <embed height="600" type="image/svg-xml" name="svgEmbed" id="svgEmbed" src="dzx.svg"
  pluginspage="http://www.adobe.com/svg/viewer/install/" style="width: 760px; float: left;"></embed>

dzx.svg 如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20030114.dtd">
<svg width="100%" height="100%" id="mainbox" version="1.1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" style="cursor:move;" >
  <script type="text/javascript"> <![CDATA[  
  function rOver(evt,tagname)
  {
  SVGDoc=evt.getTarget().getOwnerDocument();
  var xianshi=SVGDoc.getElementById(tagname);
  xianshi.setAttribute("visibility","visible");
  }

  function rOut(evt,tagname)
  {
  SVGDoc=evt.getTarget().getOwnerDocument();
  var xianshi=SVGDoc.getElementById(tagname);
  xianshi.setAttribute("visibility","hidden");
  }
]]></script>
  <defs>
  <g id="bz1" >
  <circle cx="0" cy="0" r="5" fill="red" stroke="red" />
  </g>
  <g id="bz2" >
  <circle cx="0" cy="0" r="5" fill="blue" stroke="blue" />
  </g>
  <g id="bz3" >
  <circle cx="0" cy="0" r="5" fill="green" stroke="blue"/>
  </g>
  <g id="bz4" >
  <circle cx="0" cy="0" r="5" fill="#1DEFEB" stroke="gray"/>
  </g>
  <g id="dzd" >
  <circle cx="0" cy="0" r="5" fill="#000000" stroke="gray"/>
  </g>
  </defs>
  <defs>
  <linearGradient id="linearGradient" x1="0" y1="0" x2="0" y2="100%">
  <stop stop-color="#FF0000" offset="0" />
  <stop stop-color="#FFFF06" offset="0.25" />
  <stop stop-color="#00D40A" offset="0.5" />
  <stop stop-color="#00FFFF" offset="0.75" />
  <stop stop-color="#0000F3" offset="1" />
  </linearGradient>
  </defs>
  <g id="chart" ></g>
</svg>


通过ajax将绘制的图像返给页面,经过测试返回的串是有的
但是通过js将返回的svg元素添加到dzx.svg中时遇到问题。js代码如下
svgViewer = document.getElementById("svgEmbed");
  SVGDoc = svgViewer.getSVGDocument();
  SVGRoot = SVGDoc.childNodes.item(0);
  chart = SVGDoc.getElementById("chart");
这里调试发现SVGDoc.childNodes.length=0,而且ie状态栏一直显示(剩下一项,正在打开网页)
我猜测是因为dzx.svg没有载入 请问这是为什么,是其他原因吗?还是服务器设置的问题。
以上问题出现时网站配置在 乙方的服务器上
换成我们自己的服务器测试正常


------解决方案--------------------
以上问题出现时网站配置在乙方的服务器上.换成我们自己的服务器测试正常 
re:
应该是对响应作了限制.联系一下乙方
------解决方案--------------------