在谷歌浏览器调用这个方法,就提示获取的东西为null,但是在IE下是可以的。。。
有人说是文件格式打开的原因,但是我试了把相关的html和svg部署到web容器上也是没法正常
相应的解决方案如下,但是对于我并不适合,求有没有和我一样情况的,帮我说说啥情况,谢谢各位大侠
http://blog.csdn.net/xiaochangwei789/article/details/7823455
http://code.google.com/p/chromium/issues/detail?id=21338
我是在html中嵌入svg的,主要代码如下:
//需要获取当前SVG图像的DOM
var svgDoc=null;
function initHtml(){
var svgEle = document.getElementById("testSVG");
svgDoc = svgEle.getSVGDocument();//获得svg的document对象
alert(svgDoc);
var rect = svgDoc.getElementById("rect");//这个是svg文档中的一个元素的id,了解svg会懂的,就是这句报错
}
<body onload="initHtml()">
<div style="position:static;text-align:center;z-index:100">
<embed id="testSVG" name="testSVG" src="test.svg" width="1024" height="768" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" />
</div>
</body>
然后通过调试工具,提示“cannot call method getElementById”,其实实际上是前面的那个svgDoc获得的值是null引起的,不过在ie下,svgDoc 通过alert出来是有值的,但是在chrome下不行。这个写法应该是通用写法,也怀疑过是svg文档没有加载完成就调用了getSVGDocument方法,所有我也试了把js代码块放到了body后边,先让页面加载然后再调用js代码,但还是一样的问题,求解啊,各位大侠
我也遇到了这个问题,请问你解决了嘛?1.先获取页面元素
①doc=document.getElementById("doc");
2.获取svg对象
①svg=doc.getSVGDocument();
3.获取svg文档对象
①svgDoc=svg.documentElement;
4.获取svg文档对象节点
circle=svgDoc.getElementsByTagName("circle")[0];
你是不是svgDoc为null
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。