以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  [求助]非常简单的svg程序就是有一小点儿调不通,明天就急用,拜托各位高人指点指点,本人在线等回复  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=35492)


--  作者:ncepuyuyu
--  发布时间:7/11/2006 12:35:00 PM

--  [求助]非常简单的svg程序就是有一小点儿调不通,明天就急用,拜托各位高人指点指点,本人在线等回复
[color=#FF0000][color=#0000FF]程序简化如下
test_svg.svg
==================================================
<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN"  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
<svg  width="1200px" height="450px" xmlns="http://www.w3.org/2000/svg" version="1.1">
<g id="mainview">
<rect id="mainrect" x="80" y="10"  width="1000" height="380" stroke-width="2" stroke="black" fill="none"/>
</g>

<script type="text/javascript"><![CDATA[
//drawdata=parent.dataSave.innerText;
drawdata = "炉外小管焊缝探伤检查|1|1|2|2 |1+水冷壁换管4700M|1|2|6|1 |2+油系统消漏|1|6|7|1 |3+中隔板附近磨损检查|1|7|9|0 |4+消漏|2|1|3|2 |5+中隔板附近磨损检查|2|3|4|2 |6+安全阀检修、校验|2|4|6|1 |7+冷灰斗防溅网检查更换|2|6|9|0 |8+预热器碱洗|3|1|4|2 |9+烟气入口挡板检修|3|4|7|1 |10+外壳消除漏风|3|7|9|0 |11+";
var unt = new Array();
var drawline = new Array();
var svgobj = document.getElementById("mainview");
var newline,newellipse,newtext,newlink;
var newtext;
var svgns = "http://www.w3.org/2000/svg";
var fillcolor;

unt = drawdata.split("+");  //消漏|2|1|3|2 |
for(i=0;i<unt.length - 1;i++)
{
 drawline = unt[i].split("|");   

 if(drawline[4] == 0)
  fillcolor = "gray"; 
 else if(drawline[4] == 1)
  fillcolor = "blue";
 else if(drawline[4] == 2)
  fillcolor = "green";
 
 id = drawline[5];
//****************** 画超级链接 ******************//
 newlink = svgDocument.createElementNS(svgns,"a");
 //newlink.setAttribute("id","id_"+id);
 newlink.setAttribute("xlink:href","http://www.baidu.com");
 newlink.setAttribute("target","new");
 svgobj.appendChild(newlink);
//****************** 画一条直线 ******************//
 x1_l = 100*drawline[2] +100;
 x2_l = 100*drawline[3] +100;
 y1_l = 100*drawline[1] +10;
 y2_l = 100*drawline[1] +10;
 newline = svgDocument.createElementNS(svgns,"line");  
 newline.setAttribute("x1" , x1_l);
 newline.setAttribute("y1" , y1_l);
 newline.setAttribute("x2" , x2_l);
 newline.setAttribute("y2" , y2_l);
 newline.setAttribute("stroke" , fillcolor);
 //svgobj.appendChild(newline);
 svgobj.lastChild.appendChild(newline);
}

]]></script>
</svg>
================================================
程序说明及我的问题:
我要实现动态添加一个<a></a>,在链接里边动态添加一个<line>,也就是说点击动态生成的一条线能链接到一个网页
问题:画线,画链接都没问题(能出现小手的图标),就是链接不到新网页,我实在查不出问题在哪里,望高人解答,本人急用。。3X了。。[/color][/color]


--  作者:ncepuyuyu
--  发布时间:7/11/2006 4:53:00 PM

--  
已经解决了(属性仍然得加命名空间)
结贴
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms