首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用SVGweb将侦听器添加到中的SVG中

无法使用SVGweb将侦听器添加到中的SVG中
EN

Stack Overflow用户
提问于 2013-02-27 18:24:33
回答 2查看 911关注 0票数 4

这段代码在Firefox中运行得很好,但在IE中却不行。我已经阅读了SVGWeb (http://svgweb.googlecode.com/svn/trunk/docs/UserManual.html)的文档,但是我没有找到/理解解决方案,有什么想法吗?

代码语言:javascript
复制
window.onsvgload = function() {
  carga();
var mySVG = document.getElementById("mySVGObject").contentDocument;
        mySVG.addEventListener('click', function(evt) {
                alert(evt.target.id);
    }, false);
}

我在IE中使用这样的东西没有问题:

代码语言:javascript
复制
mySVG.getElementById('Color2').style.fill='#00cc00'

使用该代码,我可以在形状上更改颜色和文本,但我不能让侦听器在IE中工作。

编辑:这可以在Chrome,火狐和IE9中使用,我需要它在IE7上工作。我就是这样加载SVG对象的:

代码语言:javascript
复制
 <div style="text-align:center" id="mapaSvg" >
<!--[if !IE]>-->
 <object data="ca.svg" type="image/svg+xml"
      width="700" height="800" id="mySVGObject" > <!--<![endif]-->
<!--[if lt IE 9]>
<object src="ca.svg" classid="image/svg+xml"
      width="700" height="800" id="mySVGObject" > <![endif]-->
<!--[if gte IE 9]>
<object data="ca.svg" type="image/svg+xml"
      width="700" height="800" id="mySVGObject" > <![endif]-->
</object>
</div>
<div style="text-align:center">

IE开发工具显示了错误:

“在装载时触发错误:不支持”

在线路上:

代码语言:javascript
复制
mySVG.addEventListener('click', function(evt) {
                alert(evt.target.id);
    }, false);

在这里,您可以看到SVGWEB在IE、Firefox、Chrome上运行的一个例子,鼠标移动到动态线上:https://www.destatis.de/bevoelkerungspyramide/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 08:37:43

尝试在这个块内调用addEventListener而不是onsvgload

代码语言:javascript
复制
window.addEventListener('SVGLoad', function() {
   // all SVG loaded and rendered
}, false)

这些构造是相等的,但我作出这个假设是因为一个错误:“启动负载时出错:不支持”。

票数 1
EN

Stack Overflow用户

发布于 2013-03-12 22:52:47

不知道它是否有用,但除了IE8和IE7之外,我在每个浏览器中都有同样的问题。这个问题是由于在svg中使用自关闭的图像元素<image/>而不是<image></image>造成的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15119456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档