我也是要做这样的问题 你现在有什么进展了没有
http://topic.csdn.net/u/20090502/16/22882901-fb19-4c16-8161-7d8b1ae3a138.html
我的帖子也在这里挂着 好像没有人整着玩意呢
我qq250290198

解决方案 »

  1.   

    安装svg viewer,调用其控件。不过最新的svg viewer不让调用,早期的可能可以。
      

  2.   

    我也在编一个svg网站,用ajax传送数据,在客户端用js生成svg,在ie下生成vml
      

  3.   

    楼上的 能指导一下吗 
    ajax传数据怎么传的 
      

  4.   

    我是用ext编的,比如画两个ploygon:
    "{length:2,items:[{draw:'ploygon',stroke:null,strokeWidth:0,fill:'#F1D0BD',data:'44.95771,84.3984 43.7352,78.8685 42.3852,75.396 41.999,74.8173 41.549},"+
                                     "{draw:'ploygon',stroke:null,strokeWidth:0,fill:'#E9BCA6',data:'22.7092,65.4298 22.1304,65.5586 21.6804,66.0723 21.2942,66.7798 21.0379,67.8086 20.7154,69.031 20.6517,70.6385 20.7154,72.5673 20.9091}]}"——这是服务器输出的字符串var canvas=new Ext.ux.Canvas(); //Canvas是我定义的组件
        canvas.render('canvas-div');Ext.get('Button1').on('click',function(e){
              Ext.Ajax.request({
            url: 'Default2.aspx',
            params: {icon:'ear1'},
            callback: function(options,success,response){
               if(success){
                   var json=Ext.decode(response.responseText);
                   for(var i=0;i<json.length;i++){
                               canvas.drawPolygon(json.items[i].id,json.items[i].data,json.items[i].stroke,json.items[i].strokeWidth,json.items[i].fill);
                           }
                   
               }
               else{
                 alert("no response");
               }
                
            }
                });这里是Canvas的方法:
    onRender : function(container, position){        //这是私有方法:生成一个svg的命名空间
            if(!Ext.isIE){
                var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");
                svg.id = this.getId();
        svg.setAttribute("width",178+"px");
        svg.setAttribute("height",178+"px");
        svg.setAttribute("viewBox","0 0 178 178");
        container.dom.insertBefore(svg, position);
        this.svg = Ext.get(svg);
    }
        },
    drawPolygon :function(id,p,s,sw,f){         //这里就开始画Polygon了
       var polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
               if(id){
                   polygon.setAttribute('id', id);
               }
               polygon.setAttribute('position','absolute');
               polygon.setAttribute('points',p);
              
               if(s){
                   polygon.setAttribute('stroke', s);
               }
               if(sw!=0){
                   polygon.setAttribute('stroke-width', sw);
               }
               polygon.setAttribute('fill', f);
               this.svg.dom.appendChild(polygon);
            }
    }
    总之,用ext非常容易操作svg。
      

  5.   

    当然了,你可以通过判断json.items[i].draw可以画任何图形:
    if(json.items[i].draw=='line') canvas.drawLine
      

  6.   

    自己写的控制是什么 ext 是什么 
    netharry你也太强了吧 能给我代码吗
    或者给我做个小例子
      

  7.   

    问下 怎么把string 转为 svg 用的xml
      

  8.   

    在 aspx 页面 能修改svg 吗?
    我是这么写的 怎么不对呢
     var xmlstring=ResultData.value;
       var svgViewer=document.getElementById("svg");
       SVGDoc = window.document.getElementById("svg").getSVGDocument();
       alert(SVGDoc.getElementById("ruler").getAttribute("color"));
        var new_node=svgViewer.window.parseXML(xmlstring,SVGDoc);
        SVGDoc.getElementById("ruler").appendChild(new_node);
    xmlstring=<g id='line'><line x1='10' y1='"+start+"' x2='10' y2='"+end+"' stroke='black' stroke-width='1' /></g>
    xmlstring 是从后台取得string 是正确的