为啥chrome使用svg技术,没法正常使用getSVGDocument这个方法
1个回答
2014-11-12 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517192
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
在谷歌浏览器调用这个方法,就提示获取的东西为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代码
有人说是文件格式打开的原因,但是我试了把相关的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代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询