2012-01-13 2 views
0

svgwebプラグインを使用して、svgオブジェクトが自分のページにロードされたことを検出しようとしていて、svg内の属性の値を取得しようとしています。私はドキュメントで見つけたこれを試しました:svgwebを使用してsvgオブジェクトがロードされたときを検出しますか?

$(document).ready(function() { 
    window.addEventListener('SVGLoad', function() { 
     alert('done'); 
    }, false); 
    }); 

しかし、それは動作していないようです。私はこの後、他のjQueryのためのドキュメント準備関数を使用しているので、このバージョンのチェック方法を選択しました。私は間違って何をしていますか?私は別のものを追加する必要がありますか?

EDIT:jQuery $(document).ready and svg-web window.onsvgload

+0

このようなイベントが実際に存在するかどうかはわかりません。多分、あなたはhttp://raphaeljs.com/のようなライブラリを使ってSVGを作成することができますか? – Armin

+0

私はライブラリ/プラグインを使用しています:svgweb。それがイベントの出所です。私はちょうどそれを働かせる方法を理解していない。 – Anders

+0

どこにsvgwebオブジェクトがありますか?おそらく、あなたはそれでこのイベントを使うことができますか? – Armin

答えて

0

あなたは、外側のsvg要素ではなく、ウィンドウ上でaddEventListenerを呼び出す必要があります:ああ、ところで、これはどちらか動作しません。 SVGイベントは、htmlとは異なりウィンドウに移動しません。

svgを持つhtml5ではなくsvgドキュメントを持っている場合は、document.documentElementを使用して外側のsvg要素を取得できます。そうでない場合は、外側のsvg要素にidを置き、取得するためにdocument.getElementByIdを呼び出します。

var svgElement = document.getElementById("<outer svg element id>"); 
svgElement.addEventListener("SVGLoad", ... 
+0

私は、データ属性を持つsvgファイルを含めるオブジェクト要素を持っています。私はsvgファイル自体を変更することはできません。なぜなら、これらは異なる環境(これは技術的なドキュメントシステムです)で常に生成されるからです。私はIDを事前に知らないので、idによってsvg要素に実際に到達することはできません(これは巨大なxslt変換から行われます)。私はオブジェクトの要素に到達することができます、そして、私はそれが読み込まれていることを知っているときにその中にsvgを選択したい... – Anders

+0

あなたの場合var svgElement = document.getSVGDocument()。documentElement; –

+0

これは、私が質問のコメントで意味していることです:) – Armin

関連する問題