В IE9 импортированные узлы, похоже, не распознаются как элементы SVG - PullRequest
1 голос
/ 14 февраля 2012

Я добавляю пару элементов в существующий документ SVG, используя метод importNode (); все вроде бы хорошо; может получить новые добавленные элементы, используя getElementsByTagName [getElementById () не работает] , но проблема в том, что импортированные элементы не распознаются как SVGGElements, а упоминаются просто как [объектный элемент]. есть идеи, ребята?

1 Ответ

2 голосов
/ 15 февраля 2012

Элементы внутри XML-файла должны определять, в каком пространстве имен они находятся, иначе они будут проанализированы как неизвестные XML-элементы.

Это верно, даже если корнем XML-файла был элемент . Чтобы убедиться, что элементы анализируются как правильные элементы svg, вы должны добавить xmlns="http://www.w3.org/2000/svg" и, возможно, xmlns="http://www.w3.org/1999/xlink (если вы используете атрибуты xlink в любом месте файла).

Если, с другой стороны, вы проанализировали элементы с использованием анализатора html5, ограничения аналогичны, но немного отличаются, поскольку атрибуты xmlns не распознаются в html (только в xhtml). В таком случае вам понадобится как минимум корневой элемент , чтобы разметка анализировалась как svg в таком случае, и вам нужно убедиться, что разметка определяется как html5 (избегая любых устаревших режимов отката для конкретного браузера) , Таким образом, вы не можете иметь элемент в качестве корня, если вы используете парсер html5.

...