2011-10-23 9 views
1

私は内部にHTMLドキュメントに埋め込まれたSVGファイルを持っています。私はHTMLとsvgの要素にIDとクラスを使用してjavascriptでアクセスできます。しかし、私はいくつかのドラッグアンドドロップ埋め込みSVGを実行したいです。私はhttp://svg-whiz.com/svg/DragAndDrop.svgで次の例を使用していますが、SVGをjavascriptから分離していますが、SVGをHTMLに埋め込むと問題が発生します。私は私が働いてドラッグ&ドロップルーチンを得ることができるようにHTMLでSVGのルートにアクセスする必要が HTMLに埋め込まれたSVG、ドラッグアンドドロップのコードの問題

onload="initSVG(evt)" 

を埋め込まれたとき、SVGでinit関数は動作しません。スタンドアロンのSVGのための元のコードはこのように書かれている:エラーが発生します

function initSVG() 
{ 
SVGRoot = document.getElementsByTagName("svg"); 
TrueCoords = SVGRoot.createSVGPoint(); 
GrabPoint = SVGRoot.createSVGPoint(); 
} 

:それはonloadイベントの呼び出しなしで実行することができるように

function initSVG(evt) 
{ 
SVGDocument = evt.target.ownerDocument; 
SVGRoot = SVGDocument.documentElement; 
TrueCoords = SVGRoot.createSVGPoint(); 
GrabPoint = SVGRoot.createSVGPoint(); 
} 

私の書き換えは、そのようなのようなものです」オブジェクト#にはメソッド 'CreateSVGPoint'がありません。したがって、スタンドアローンのSVGと同じ方法でインポートされたSVGを扱っているようには見えません。 SVGRootを入手するにはどうすればいいですか?

ありがとうございます!

P.S.私はおそらくjqueryを使用しているはずですが、私は生のDOMを学びたいと思っていました。

答えて

4

getElementsByTagName関数は、要素ではなくNodeListを返します。試してください:

SVGRoot = document.getElementsByTagName("svg")[0]; 
+0

です。ありがとう! – pluke

関連する問題