SVG, встроенный в HTML, проблемы с перетаскиванием кода - PullRequest
1 голос
/ 24 октября 2011

У меня есть файл SVG, встроенный в документ HTML внутри.Я могу javascript получить доступ к элементам в HTML и SVG, используя идентификаторы и классы.Тем не менее, я хочу выполнить перетаскивание встроенного SVG.Я использовал следующий пример на http://svg -whiz.com / svg / DragAndDrop.svg , отделяющий SVG от javascript, но у меня возникают проблемы, когда я внедряю SVG в HTML.Функция инициализации в SVG не работает, когда она встроена

onload="initSVG(evt)"

Мне нужен доступ к корню SVG в HTML, чтобы я мог заставить работать процедуры перетаскивания.Исходный код для автономного svg написан так:

function initSVG(evt)
{
SVGDocument = evt.target.ownerDocument;
SVGRoot = SVGDocument.documentElement;
TrueCoords = SVGRoot.createSVGPoint();
GrabPoint = SVGRoot.createSVGPoint();
}

Моя перезапись такова, что его можно запустить без вызова события onload:

function initSVG()
{
SVGRoot = document.getElementsByTagName("svg");
TrueCoords = SVGRoot.createSVGPoint();
GrabPoint = SVGRoot.createSVGPoint();
}

, что даетошибка: «У объекта # нет метода« CreateSVGPoint »».Таким образом, похоже, что импортированный SVG не обрабатывается так же, как отдельный svg.Как я могу получить SVGRoot?

Спасибо!

PS Я знаю, что, вероятно, мне следует использовать jquery, но я хотел изучить сырой DOM.

1 Ответ

4 голосов
/ 24 октября 2011

Функция getElementsByTagName возвращает NodeList, а не элемент.Попробуйте:

SVGRoot = document.getElementsByTagName("svg")[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...