У меня есть графика svg, вставленная на страницу с тегом embed или object:
<object data="graphics.svg" type="image/svg+xml" id="graphics" />
Изображение загружается правильно, и я могу видеть его структуру SVG с помощью отладчика браузера. Я вижу все идентификаторы и атрибуты элементов, но мне кажется, что нет возможности выбрать эти элементы с помощью моих скриптов на странице:
$('#graphics path').length; // 0 (jQuery)
$('path').length; // 0 anyway
Можно ли просматривать графические элементы как обычно?
1 ответ
Он будет отображаться как отдельный документ, похожий на iframe. Вы можете получить к нему доступ так:
var svg = document.getElementById('graphics').contentDocument
Обратите внимание, что важно дождаться загрузки файла svg; вы можете поместить свой код в обработчик событий onload
элемента object
, например:
<object data="graphics.svg" type="image/svg+xml" id="graphics" />
<script>
document.getElementById('graphics').addEventListener('load',function(){
var svg = document.getElementById('graphics').contentDocument
// do stuff, call functions, etc.
})
</script>
$('#graphics').load(function() { /* ... */ }
?
$('#graphics')[0].addEventListener('load', function(){})
работает, а $('#graphics').load(function(){})
- нет ... Я видел ваш последний фрагмент при поиске решения в Google, но я не пробовал его точно - вот где я допустил ошибку.
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.