江江之家

技术摘记随笔(软件开发、项目管理)

导航

svg例子

发贴心情 
var xmlDoc = SVGEmbed.window.parseXML(templeContent.content).documentElement;
var frag = SVGEmbed.window.parseXML(SVGEmbed.window.printNode(xmlDoc.getElementsByTagName("rect").item(0)),SVGDocument);
SVGDocument.rootElement.appendChild(frag.firstChild);
试试这样,应该可以的!


 紧急求助一个SVG的问题!!!
//test.svg
<svg width="100%" height="100%">

</svg>
//test.xml
<Document xmlns="">
    <Cavans>
   <svg xmlns="http://www.w3.org/2000/svg" width="400px" height="300px">
    <g id="oAll">
     <rect id="oRect" x="50" y="200" width="100" height="100" fill="red" stroke="black" stroke-width="2" />
    </g>
   </svg>
    </Cavans>
    <DataSource/>
</Document>
//test.htm
<html>
 <head>
  <title></title>
 </head>
 <script language="javascript">
var SVGDocument = null;
function loadTemplet()
{
 templeContent = SVGDocument.createElement("XML"); 
 templeContent.async = false;
 templeContent.load("test.xml");
 loadSVG(templeContent);
}
function loadSVG(templeContent)
{
 var SVGContent = templeContent.selectSingleNode(".//g");
 SVGDocument = window.document.getElementById("SVGEmbed").getSVGDocument();
 
 SVGDocument.rootElement.appendChild(SVGContent);
}
 </script>
 
 <body onload="loadTemplet()">
  <div id="layer1">
   <object id="SVGEmbed" data="test.svg" codebase="http://www.adobe.com/svg/viewer/install/"
    width="600" height="450" type="image/svg+xml" VIEWASTEXT>
   </object>
  </div>
 </body>
</html>
//////////////////////////
test.svg是一个空文件,它的实际内容在test.xml里
我想把test.htm当作一容器
将test.xml里的内容在test.htm中转放到<object id="SVGEmbed"/>,显示出图形
但是我构造的document好像不能通过appendChild到指定的SVGDocument上,
请有过此类经验的兄弟帮助我一下



发贴心情 

<script language="javascript">
var SVGEmbed = null;
var SVGDocument = null;
var SVGVersion = null; 

var templeContent = new ActiveXObject("MSXML2.DOMDocument.3.0");
templeContent.load("test.xml");

function loadTemplet()
{
 try
 {
  SVGEmbed = document.embeds["SVGEmbed"];//或者用 document.getElementById("SVGEmbed");
  SVGVersion = SVGEmbed.getSVGViewerVersion();
  if(!(SVGVersion.indexOf("Adobe") != -1))return;
  SVGDocument = SVGEmbed.getSVGDocument();
  loadSVG(templeContent);
  //SVGEmbed.window.getURL("test.xml",loadSVG2);
 }
 catch(e)
 {
  alert(e.message);
  //window.location.reload();
 }
}
function loadSVG(templeContent)
{
 var SVGContent = templeContent.selectSingleNode("//g"); 
 //alert(SVGContent.xml);
 var frag = SVGEmbed.window.parseXML(SVGContent.xml,SVGDocument);
 //alert(SVGEmbed.window.printNode(frag));
 SVGDocument.rootElement.appendChild(frag.firstChild); 
}
</script>



发贴心情 
loadSVG2我是这样写的,它是getURL的一个回调
function loadSVG2()
{
 if(templeContent.success)
 {
  //alert(templeContent.content);
  var frag = SVGEmbed.window.parseXML(templeContent.content, SVGDocument);
  //alert(SVGEmbed.window.printNode(frag.childNodes.item(0)));  
  SVGDocument.rootElement.appendChild(frag.firstChild); 
 }
}


posted on 2005-06-30 18:47  江江  阅读(2871)  评论(0编辑  收藏  举报