这段代码在 Firefox 中运行良好,但在 IE 中不行。我已经阅读了 SVGWeb 的文档(http://svgweb.googlecode.com/svn/trunk/docs/UserManual.html),但我没有找到/理解解决方案,知道吗?
window.onsvgload = function() {
carga();
var mySVG = document.getElementById("mySVGObject").contentDocument;
mySVG.addEventListener('click', function(evt) {
alert(evt.target.id);
}, false);
}
我在 IE 中使用这样的东西没有问题:
mySVG.getElementById('Color2').style.fill='#00cc00'
使用该代码,我可以更改形状中的颜色和文本,但我无法让侦听器在 IE 中工作。
编辑:这适用于 Chrome、Firefox 和 IE9,我需要它在 IE7 上运行。这就是我加载 SVG 对象的方式:
<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开发工具显示错误:
“触发 onload 时出错:不支持”
在线上:
mySVG.addEventListener('click', function(evt) {
alert(evt.target.id);
}, false);
在这里,您可以看到 SVGWEB 在 IE、Firefox、Chrome 中工作的示例,鼠标悬停在动态行上: https ://www.destatis.de/bevoelkerungspyramide/