不能使用SVGweb在Internet Explorer中为SVG添加侦听器
Can't add listener to a SVG in Internet Explorer using SVGweb
这段代码在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/
尝试在此块中调用addEventListener
而不是onsvgload
:
window.addEventListener('SVGLoad', function() {
// all SVG loaded and rendered
}, false)
这些结构是相等的,但我做这个假设是因为一个错误:" error while firing onload: Not supported"
不知道它是否有帮助,但我在除IE8和IE7以外的所有浏览器中都有同样的问题。问题是由于在svg中使用自关闭图像元素<image/>
而不是<image></image>
造成的。
相关文章:
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 在jquery中为显示/隐藏设置cookie
- 在phonegap中为android调用onload函数的最佳方式
- 如何在fabricjs中嵌入图像base64将画布转换为SVG
- 在D3.js中为svg:g元素添加title属性
- 在替代点中为折线创建 SVG 标记.(阶梯曲线)
- 将上传的文件添加为 SVG 中的<图像>元素
- 如何根据某些功能为 svg 中的每个像素分配颜色
- 嵌套在另一个SVG元素中的SVG元素的大小为0px*0px
- 不能在D3中为svg元素上色
- 如何在网页中动态地为svg图像着色
- 如何将用户绘制的网页中的SVG转换为PNG或JPG
- AngularJS应用中的Svg clipPath, url为hashbang模式
- 在嵌套结构中为svg组添加边框
- 不能使用SVGweb在Internet Explorer中为SVG添加侦听器
- 将HTML页面中的SVG标记保存为SVG图像
- 加载到 img 标签中的 Svg 为空
- 在PDF中嵌入SVG(使用JS将SVG导出为PDF)
- 如何在SVG中为d3 js地图创建坐标
- 在离线TideSDK web应用程序中导出SVG为PDF