2012-02-14 14 views
1

importNode()メソッドを使用して既存のSVGドキュメントにいくつかの要素を追加しています。すべてがうまくいくようです。 getElementsByTagName [getElementById() is not working]を使って新しく追加された要素を得ることができましたが、インポートされた要素がSVGGElementsとして認識されず、代わりに[object要素]として記述されるという問題があります。任意のアイデアの人?IE9では、インポートされたノードがSVG要素として認識されないようです。

+0

SVG名前空間のノードはありますか? –

+0

ロバート@、私は ...

答えて

2

xmlファイル内の要素は、それらの名前空間を定義する必要があります。そうでなければ、未知のxml要素として解析されます。

xmlファイルのルートが< svg>要素であっても、これは当てはまります。要素が適切なsvg要素として解析されるようにするには、xmlns="http://www.w3.org/2000/svg"とおそらくxmlns="http://www.w3.org/1999/xlink(xlink属性をファイルのどこにでも使用する場合)を追加する必要があります。

一方、html5パーサを使用して要素を解析すると、xmlns属性がhtml(xhtmlのみ)で認識されないため、制約は似ていますがわずかに異なります。そのような場合にマークアップをsvgとして解析するには、少なくとも< svg>要素ルートが必要です。マークアップがhtml5として検出されていることを確認する必要があります(ブラウザー固有の古いフォールバックモードは避けてください) 。したがって、html5パーサーを使用すると、< g>要素をルートとして持つことができませんでした。

関連する問題