Ich habe ein SVG in meinem Dokument und ich fügen Sie ein Symbol, um es mit Javascript wie folgt aus:Warum SVG verwenden Element mit Javascript erstellt wird nicht angezeigt?
var myScene =document.getElementById('myScene');
var useSVG = document.createElement('use');
useSVG.setAttribute('xlink:href','spriteSheet.svg#mySymbol');
useSVG.setAttribute('x','10');
useSVG.setAttribute('y','30');
useSVG.setAttribute('width','10');
useSVG.setAttribute('height','10');
myScene.appendChild(useSVG);
Das Symbol nicht angezeigt wird, während der resultierende Code genau das gleiche wie ein weiterer Knoten in HTML Wich geschrieben ist, korrekt angezeigt.
-Code in Debugger angezeigt:
<svg id="myScene" width="200px" height="200px">
<use xlink:href="spriteSheet.svg#mySymbol" x="5" y="50" width="10" height="10"></use>
<!-- this one was in html, it is visible -->
<use xlink:href="spriteSheet.svg#mySymbol" x="10" y="30" width="10" height="10"></use>
<!-- this one is added with javascript. it is not displayed -->
</svg>
die Antwort unten nicht genug ist, weist jedoch auf die richtige Richtung. Hier müssen Sie auch 'document.createElementNS' anstelle von' document.createElement' verwenden, um das 'use' Element zu erstellen. Diese [Antwort] (http://stackoverflow.com/questions/16488884/add-svg-element-to-existing-svg-using-dom) löste das ähnliche Problem. –
Ich habe alles versucht, ich kann es nicht funktionieren lassen. Kann auch kein funktionierendes Beispiel finden. Meine Lösung besteht darin, dem fest codierten USE-Tag eine ID zu geben und es mit node.cloneNode() zu duplizieren. Ich suche immer noch ein funktionierendes Beispiel. – bokan