добавление пространства имен изображения в SVG через JS по-прежнему не показывает мне картинку - PullRequest
5 голосов
/ 01 августа 2011

после отработки получения параметра через уменьшенную версию изображения, я пытаюсь с помощью Javascript добавить изображение с исходным параметром размера в SVG.

Firebug показывает мне элемент и все необходимые параметры, но с наилучшими пожеланиями я не получаю.

this.svg = document.getElementsByTagNameNS('http://www.w3.org/2000/svg','svg');     
var bild = document.createElementNS('http://www.w3.org/2000/svg','image');
var BildURL = this.image[0][0].getAttribute('xlink:href');
var imgX = new Image();
imgX.src = BildURL;

bild.setAttribute("x","60");
bild.setAttribute("y","40");
bild.setAttribute("width",imgX.width);
bild.setAttribute("height",imgX.height);    
bild.setAttribute("id","image12976");
bild.setAttribute("xlink:href",BildURL);
this.svg[0].appendChild(bild);

Если я взгляну на Firebug, элемент полностью существует.

<image id="image12976" x="60" y="40" width="300" height="430" xlink:href="img/Akira1.jpg">

Я переместил указатель мыши над сценой, я вижу прямоугольник изображения в «режиме инвестирования», но не содержимое.

Может кто-нибудь здесь сказать мне, что я сделал неправильно?!

Буду любезно поблагодарить вас

Укротитель

Ответы [ 2 ]

15 голосов
/ 01 августа 2011

Никогда не следует использовать getAttribute / setAttribute для атрибутов, которые имеют префиксы, подробнее см. DOM 3 Core .

Это будет прекрасно работать, если вы используете

getAttributeNS('http://www.w3.org/1999/xlink', 'href')

и

setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', your_url_here).

0 голосов
/ 01 августа 2011

Попробуйте создать изображение с null пространством имен:

var bild = document.createElementNS(null, 'image');
...