Доступ JavaScript во внутренний DOM SVG
test.php
- объект SVG, создаваемый с помощью PHP.
<object data="test.php" type="image/svg+xml" id="SVG" />
<script>
var mySVG = document.getElementById("SVG");
var svgDoc = mySVG.contentDocument;
svgDoc
имеет значение null. (и поэтому я не могу получить доступ к элементам svg через JS.) Он должен работать, глядя на этот вопрос. Что я делаю неправильно? Как я могу получить contentDocument
моего SVG?
Ответы
Ответ 1
Вам нужно подождать, пока SVG будет загружен, и вы сможете получить доступ к contentDocument:
var mySVG = document.getElementById("SVG");
var svgDoc;
mySVG.addEventListener("load",function() {
svgDoc = mySVG.contentDocument;
alert("SVG contentDocument Loaded!");
}, false);
Ответ 2
Не уверен, что это ответ, но это сработало для меня. У меня была такая же проблема и svgObject
возвращается null
:
var svgObject = document.getElementById('svgObject').contentDocument;
Затем мне пришло в голову, что я запускаю свою HTML-страницу локально: file:///C: /wwwroot/App_dev/OverLay/Overlay03.html
Запускаем его с сервера: http://localhost: 62551/App_dev/OverLay/Overlay03.html
Он работал безупречно, и svgObject
возвращал свое содержимое, тогда я мог получить div
внутри него.