两个svg文件用javascript合并的问题?
16lz
2021-01-22
我在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);
检查一下svgdocold.getElementById("box")是否为空对象
我现在想想把新的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")是否为空对象
更多相关文章
- 在jQuery的$.post中调用函数时,Undefined不是对象
- FusionCharts的Line.swf做法,我想出现2条图形线,怎么设置graph标签
- 如何使函数等到对象的值未定义为js setTimeout
- 如何在javascript中合并2个对象[重复]
- JavaScript学习07 内置对象
- javascript的密封对象之seal(),isSealed()方法
- JavaScript String(字符串对象)
- AngularJS(1.5.8) - 如何直接从获取json对象的控制器中填充选择选
- 使用append方法将对象转换为字符串