Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   доступ к элементам <embed> (https://javascript.ru/forum/events/22120-dostup-k-ehlementam-embed.html)

pupena_san 06.10.2011 23:40

доступ к элементам <embed>
 
В <embed> загружается SVG файл. Как-то можно доступиться к его содержимому и наооборот из него к содержимому страницы, он вроде как тоже строится на основе DOM-модели? В нем работают скрипты, но только вот как документ они видят только SVG, а скрипты в html не находят объекты SVG.
Спасибо.

yyk 18.08.2013 17:20

Аналогичная проблема с вставкой svg посредством тега <object>. Добраться до подгруженных элементов через getElementById не удалось. Но вот firefox "исследовать элемент" до элементов svg добирается. Как же ему это удается?


Кстати firebug тоже не видит элементы загруженного svg через теги embed и object (((

danik.js 18.08.2013 18:58

Цитата:

Сообщение от yyk
не удалось

Да ты видимо и не пытался.

yyk 18.08.2013 19:42

Ах, если бы...

danik.js 18.08.2013 20:20

Не, ты точно не пытался.

yyk 18.08.2013 20:49

Ну, тебе видней. Ты, наверное, за спиной у меня стоишь. По существу есть что-нибудь?

danik.js 18.08.2013 20:54

Цитата:

Сообщение от yyk
Ну, тебе видней

Я вижу это потому что ты до сих пор не опубликовал свои попытки.

yyk 18.08.2013 22:11

Разобрался, хотя и не до конца. Помогла вот эта статья, раздел "Скриптование внедренной svg-картинки". Там дается инфа о том, что объекты типа object загружаются асинхронно. Вся беда была в том, что я пытался обратиться к объекту до его загрузки. Обработчик onload повесить
пока не удалось, но сделав дополнительную кнопку по клику на которую обращаюсь к объекту вот так:
var my = document.getElementById('svg_item');
alert(my.contentDocument.getElementById('top_block'));

увидел, что все срабатывает нормально. В общем, важный факт - асинхронная загрузка object и embed.

ruslan_mart 19.08.2013 04:35

<embed name="obj" />


document.embeds.obj.contentDocument;

//Или

document.embeds.obj.contentWindow.document;


Часовой пояс GMT +3, время: 15:26.