-- 作者: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]
|