2
回答
为啥chrome使用svg技术,没法正常使用getSVGDocument这个方法

在谷歌浏览器调用这个方法,就提示获取的东西为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代码,但还是一样的问题,求解啊,各位大侠



举报
594zzb
发帖于5年前 2回/4K+阅
顶部