我的代码: 
function VMLPie(pWidth,pHeight,pCaption,pContainer){
this.Container=pContainer;
this.Width= pWidth || "400px";
this.Height=pHeight || "250px";
this.Caption = pCaption || "VML Chart";
this.backgroundColor="";
this.Shadow=false;
this.BorderWidth=0;
this.BorderColor=null;
this.all=new Array();
this.id=document.uniqueID;
this.RandColor=function(){
return "rgb("+ parseInt( Math.random()*255)+","+parseInt(Math.random()*255)+","+parseInt( Math.random()* 255)+")";
}
this.VMLObject=null;
this.LegendObject=null;
}
//接口功能
// 开始画图,将图形画到指定的容器上面
/////////////////////////////////////////////////////////////////////////////////////////////////
VMLPie.prototype.Draw=function(){
//画外框
var objGrp=document.createElement("v:group");
objGrp.id=this.id;
objGrp.style.width=this.Width;
objGrp.style.height=this.Height;
objGrp.coordsize="21600,21600";
//添加一个背景层
var vRect=document.createElement("v:rect");
vRect.style.width="21600px";
vRect.style.height="21600px";
alert(''111); objGrp.appendChild(vRect);
alert('333');
//添加标题
var vCaption=document.createElement("v:textbox");
vCaption.style.fontSize="24px";
vCaption.style.height="24px";
vCaption.preSize="24";
vCaption.style.fontWeight="bold";
vCaption.innerHTML=this.Caption;
vCaption.style.textAlign="center"; vRect.appendChild(vCaption);
//设置边框大小
if(this.BorderWidth){
vRect.strokeweight=this.BorderWidth;
}
//设置边框颜色
if(this.BorderColor){
vRect.strokecolor=this.BorderColor;
}
//设置背景颜色
if(this.backgroundColor){
vRect.fillcolor=this.backgroundColor;
}
//设置是否出现阴影
if(this.Shadow){
var vShadow=document.createElement("v:shadow");
vShadow.on="t";
vShadow.type="single";
vShadow.color="graytext";
vShadow.offset="4px,4px";
vRect.appendChild(vShadow);
}
this.VMLObject=objGrp; //开始画内部园
var oOval=document.createElement("v:oval");
oOval.style.width="15000px";
oOval.style.height="14000px";
oOval.style.top="4000px";
oOval.style.left="1000px";
oOval.fillcolor="#d5dbfb"; //本来计划加入3D的效果,后来感觉确实不好控制,就懒得动手了
//var o3D=document.createElement("o:extrusion");
var formatStyle=' <v:fill rotate="t" angle="135" focus="100%" type="gradient"/>';
//formatStyle+='<o:extrusion v:ext="view" color="#9cf" on="t" rotationangle="-15"';
//formatStyle+=' viewpoint="0,34.72222mm" viewpointorigin="0,.5" skewangle="105"';
//formatStyle+=' lightposition="0,50000" lightposition2="0,50000"/>';
formatStyle+='<o:extrusion v:ext="view" backdepth="1in" on="t" viewpoint="0,34.72222mm" viewpointorigin="0,.5"  skewangle="90" lightposition="50000" lightposition2="50000" type="perspective"/>';
oOval.innerHTML=formatStyle;
 
//objGrp.appendChild(oOval);
this.CreatePie(objGrp);
 
return objGrp.outerHTML;
//this.Container.appendChild(objGrp); //插入
 
}
....
上述语句中报错行:  objGrp.appendChild(vRect);
错误信息: 意外地调用了方法或属性访问以下是调用语句: 
objPie=new VMLPie("600px","450px","人口统计图");   //初始化宽度,高度,标题   
objPie.BorderWidth=3;   //图表边框   
objPie.BorderColor="blue";   //图表边框颜色   
objPie.Width="800px";   //定义图表宽度   
objPie.Height="600px";   //定义图表高度   
objPie.backgroundColor="#ffffff";   //定义背景颜色   
objPie.Shadow=true;   //是否需要阴影   true为是   false为不要阴影   
//添加图表数据   
//顺序为名称,值,描述   
objPie.AddData("北京",50,"北京的人口");   
objPie.AddData("上海",52,"上海的固定人口");   
objPie.AddData("天津",30,"天津的外地人口");   
objPie.AddData("西安",58,"西安城市人口");   
objPie.AddData("武汉",30,"武汉的外地人口");   
objPie.AddData("重庆",58,"重庆城市人口");    result.innerHTML=objPie.Draw();   //生成VML数据   
...
这个问题该怎么解决啊?

解决方案 »

  1.   

    不是,从网上拷下来的.VMLPie单独放到一个js文件了,有关系吗?
      

  2.   

    怎么报“意外地调用了方法或属性访问”错    求解for (var j = 0; j < 3; j++) {
                          if ($("photo" + j).innerHTML.inc("div") || $("photo" + j).innerHTML.inc("DIV"))
                              continue
                          var op = getxy($("photo" + j))
                          if (e.x > (op[1] + 10) && e.x < (op[1] + op[2] - 10)) {
                              $("photo" + j).appendChild(dragobj.otemp)
                              dragobj.otemp.style.width = (op[2] - 10) + "px"
                          }
                      }