ブラウザーによって異なる svg を自分の Web ページに読み込んでいます。問題は、IE ではロード方法が異なるため、svg 要素を取得できないことです。
<!--[if !IE]>-->
<div id="SVGContainer"></div>
<!--<![endif]-->
<!--[if lt IE 9]>
<object id="infoobjectgraph" src="@routes.Assets.at(graphfilename)" classid="image/svg+xml" width="800" height="600" >
<![endif]-->
<!--[if gte IE 9]>
<object id="infoobjectgraph" data="@routes.Assets.at(graphfilename)" type="image/svg+xml" width="800" height="600" >
<![endif]-->
IE でない場合は、 を使用するだけ$("#SVGContainer").on("click", "g.node a", function(event){...}
で、うまく機能します。どうすればIEで同じことができますか?
試しまし$("#infoobjectgraph").on("click", "g", function(event){...}
たが、これはうまくいきません。
svg を別の方法でロードする理由は、svg が IE8 で動作するように、SVG Web を使用しているためです。したがって、読み込みはそのままでなければなりません。したがって、IE の場合はオブジェクトとしてロードされ、!IE の場合は svg からすべてのコンテンツをロードして #SVGContainer に配置します。
何か案は?
編集: 「g」は私のsvgのノードです。例えば:
<svg>
<g id="node1" class="node">
...
</g>
<g id="node2" class="node">
...
</g>
</svg>