我在ie用svgviewer显示一个svg图形,然后想在服务器端用程序动态生成生成另外一个svg图形,并把这个图形合并到当前显示的图形中。
我现在想想把新的svg图形用cloneNode方法取出来,添加到当前的图形中,结果出现“wrongdocuemnt”错误,但是把这个图形对象cloneNode添加到自己是没有问题的。
请问究竟是方法错误还什么原因?这个问题该如何解决,由于新生成的svg可能很复杂,比较难用分析xml文件然后生成的方法解决。
代码如下:
//两个对象
varsvgdocnew=document.svgMapnew.getSVGDocument();
varsvgdocold=document.svgMapold.getSVGDocument();
varsvgObjnew,svgObjold;
//取得需要添加的对象,如果这个是在本来的,添加就成功,如果是其他的,就会出“wrongdocument”错误
//程序执行正确,但是添加到自己
varbox=svgdocnew.getElementById("box");
//想添加的其他的,不成功,这是两种情况
//varbox=svgdocold.getElementById("box");
//取得需要添加的对象
svgObjnew=svgdocnew.getElementById("test1");
//clone这个对象
svgObjold=svgObjnew.cloneNode(true);
//测试这个对象是否为空
alert(svgObjold.getAttribute("r"));
//更改这个对象的其中一个属性
svgObjold.setAttribute("r","100");
//添加,box是自己,就不会出错,如果是另外的,就出错?怎么办?,加svgObjold,svgObjnew都是一样的问题,郁闷
box.appendChild(svgObjold);
//box.appendChild(svgObjnew);

3 个解决方案

#1


检查一下svgdocold.getElementById("box")是否为空对象

更多相关文章

  1. 在jQuery的$.post中调用函数时,Undefined不是对象
  2. FusionCharts的Line.swf做法,我想出现2条图形线,怎么设置graph标签
  3. 如何使函数等到对象的值未定义为js setTimeout
  4. 如何在javascript中合并2个对象[重复]
  5. JavaScript学习07 内置对象
  6. javascript的密封对象之seal(),isSealed()方法
  7. JavaScript String(字符串对象)
  8. AngularJS(1.5.8) - 如何直接从获取json对象的控制器中填充选择选
  9. 使用append方法将对象转换为字符串

随机推荐

  1. android 跳转到应用通知设置界面
  2. Android(安卓)处理空列表的方法(必看篇)
  3. Android(安卓)无需申请key直接调用微信/Q
  4. Android Service相关
  5. android 蓝牙打印程序源代码
  6. 下拉列表(Spinner)
  7. android当方法数超过64k时(android studi
  8. android的ListView
  9. android中application标签说明
  10. Android Wi-Fi AutoConnect to Ap take l