此代碼在Firefox中很好用,但在IE中我沒有閱讀SVGWeb(http://svgweb.googlecode.com/svn/trunk/docs/UserManual.html)的文檔,但是我沒有找到/理解解決方案,任何想法?無法在Internet Explorer中使用SVGweb添加偵聽器到SVG
window.onsvgload = function() {
carga();
var mySVG = document.getElementById("mySVGObject").contentDocument;
mySVG.addEventListener('click', function(evt) {
alert(evt.target.id);
}, false);
}
im使用這樣的事情在IE中沒有問題:
mySVG.getElementById('Color2').style.fill='#00cc00'
與該代碼我可以改變顏色和文本中的形狀。但我不能讓偵聽器在IE中工作。
編輯:這適用於Chrome,FF和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,FF,Chrome上鼠標移動的動態線條上工作: https://www.destatis.de/bevoelkerungspyramide/
謝謝!
你可以添加一個透明的div覆蓋並分配你的代碼中的鼠標事件。 – Matthias 2013-03-12 14:29:55
我明白你的意思,但在文檔中說SVGWEB可以添加可以在IE中使用的監聽器。這些是地圖,有很多,並有不同的形狀/地區/等,div覆蓋不是這個解決方案。謝謝! – Alejandro 2013-03-12 16:26:04
你是否試過這樣的事情: – Matthias 2013-03-12 18:39:13