JavaScript访问SVG的内部DOM

test.php是一个用PHP生成的SVG对象。

 <object data="test.php" type="image/svg+xml" id="SVG" /> <script> var mySVG = document.getElementById("SVG"); var svgDoc = mySVG.contentDocument; 

svgDoc为null。 (所以我不能通过JS访问svg的元素。)它应该工作,看这个问题。 我究竟做错了什么? 我怎样才能得到我的SVG的contentDocument

您需要等到SVG加载完毕,然后才能访问contentDocument:

  var mySVG = document.getElementById("SVG"); var svgDoc; mySVG.addEventListener("load",function() { svgDoc = mySVG.contentDocument; alert("SVG contentDocument Loaded!"); }, false);