このコードは 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);
ここでは、IE、Firefox、Chrome で動作する SVGWEB の例を動的な線の上にマウスを置いて確認できます: https://www.destatis.de/bevoelkerungspyramide/