document.createElement () создает закрытый тег? - PullRequest
1 голос
/ 04 июня 2010

Это происходит в Firefox, но не в Google Chrome.

Я создаю тег SVG 'Image' на холсте svg-web следующим образом:

im = document.createElementNS(svgns, 'image');
im.setAttributeNS(xlinkns, 'href', g.href);
canvas.appendChild(im);

И если я посмотрю в firebug или в chrome отладчике, svg будет выглядеть самозакрытым так:

<image xlink:href="..." />

Но если я затем напечатаю родительский элемент элемента innerHTML элемента svg, он вернет это:

<svg><image xlink:href="..."></svg>

Обратите внимание, что тег изображения теперь не закрыт, что вызывает ошибки в дальнейшем. Я обнаружил ошибку или я делаю что-то не так? И, возможно, гораздо сложнее, есть ли в JavaScript способ проверить и исправить тег?

1 Ответ

0 голосов
/ 04 июня 2010

HTML не требует пустых тегов для закрытия конца.Даже если бы документ был в формате XHTML, я не уверен, что он вернет действительный XML из свойства innerHTML.

Редактировать: Документация Центра разработчика Mozilla для innerHTML говорит, что вы не должны зависеть отвы возвращаетесь из innerHTML и предлагаете некоторые библиотеки в качестве замены специально для использования с XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...