2015-05-18 4 views
0

У меня есть контейнер SVG, и я хочу добавить изображение из файла SVG.Добавить svg из файла в D3

Что я знаю, это метод с тегом изображения, но я больше не буду редактировать содержимое SVG этого изображения. Я искал более яваскрипт способа и использовать функцию .xml из D3:

d3.xml("/svg/test.svg", "image/svg+xml", function(xml) { 
    document.getElementById("mysvg").appendChild(xml.documentElement); 
}); 

Это работает как задумано (присоединяет весь файл SVG в существующий контейнер) SVG. Теперь у меня есть тег в моем теге, это проблема? Есть ли другое решение для добавления всего файла svg в качестве его реального источника, а не только для ссылки? Мне действительно нужно изменить svg впоследствии (установить цвета и stuf).

Пожалуйста, помогите мне :)

+0

Какой html это возвращение? – Josh

+0

что-то наподобие ### изображение содержание здесь ### ant45de

+0

так будет ли это работать? document.getElementById ("mysvg") = (xml.documentElement) – Josh

ответ

0

Это может быть или не быть проблемой для встраивания SVG внутри mysvg элемента; зависит от того, что этот элемент. Но если вы хотите, чтобы заменить его, что-то вроде следующего должно работать:

var mysvg = document.getElementById("mysvg"); 
mysvg.parentNode.replaceChild(xml.documentElement, mysvg); 

Вы, возможно, придется конвертировать documentElement в DOMNode.

+0

Я наконец взял первый дочерний элемент документа svg и добавил его в svg , Это сработало, спасибо – ant45de