2011-12-31 11 views
2

私のHTML文書にSVGファイルを含めました。<embed src="mySvg.svg" />となりました。私は自分のSVGの中身を操作したいと思っています。Acces HTMLファイルに含まれるSVGファイル

SVGは「ドキュメント」ではなく「ウィンドウ」にあることがわかりました。私のSVGファイルで

、私はスクリプトを持っている:
(発射オンロードでのinit関数を)
function init(evt) {
svgDocument = evt.target.ownerDocument; svgDocument.getElementById('anIdOfMySvgFile'); // I successfully get the element of the SVG file
this.parent.document.getElementById('anIdOfMyHtmlFile'); // I successfully get the element of the HTML file
}

しかし、どのように私は私のHTMLファイルにあるスクリプトと私のSVGファイルから要素を選択することができます?
window.documentは私のHTMLファイルですが、SVGファイルがどのように識別されているのかわかりません!

+0

可能複製(http://stackoverflow.com/questions/8496241/how-to-access-the-content-of-the [HTMLの「埋め込み」タグのコンテンツにアクセスする方法] -embed-tag-in-html) –

答えて

5

IDをembedに設定し、document.getElementByIdを使用して取得します。 getSVGDocument()からSVGにアクセスしてください。

<embed src="mySvg.svg" id="mySvg" /> 

<script type="text/javascript"> 
     var mySvg = document.getElementById("mySvg"); 
     mySvg.addEventListener("load", function() { 
      var svg = mySvg.getSVGDocument(); 
      svg.getElementById("[insert svg element id here]"); 
     } 
</script> 
+0

私は試してみましたが、エラーが出ます:svgは未定義です... myScvには "contentDocument"という子はありません。 –

+0

おっと、申し訳ありません。編集されました。代わりにそれを試してください。 – benesch

+0

Yeh!それは動作します!私のSVGファイルでは、警告(svgDocument)を試してみましたが、[Object SVGDocument]を取得しましたが、getSVGDocument関数があることは考えられませんでした。 –

関連する問題