VML-Knoten läßt sich nicht kopieren
peter
- javascript
0 peter
Hi,
versuche verzweifelt, einen Dokumentenknoten (VML) zu kopieren/klonen und es klappt einfach nicht.
Mit SVG hauts wunderbar hin aber im IE bei VML gehts einfach nicht.
Pfad wird angelegt und angezeigt.
Nach Aufruf von kopieren() wird der Knoten wohl auch geklont, im anschließenden alert zeigt er mir [object] an.
Aber wenn ichs wieder in den Dokumentenbaum einhänge, zeigt er mir nichts an.
(Habs auch mal mit removeChild() statt cloneNode() versucht, ist das gleiche Spiel.)
Hier mal Beispielcode, ich hoffe mir kann jemand weiterhelfen:
---------------------------------------------------
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<style type="text/css">
v\:* { behavior: url(#default#VML); }
</style>
</head>
<body>
<input type="button" value="Kopieren" onclick="kopieren();return false;">
</body>
</html>
<script type="text/javascript">
~~~~~~javascript
var pfad='M 10 10 L40 40 L 60 80 L80 40 nf e';
var s=document.createElement("v:shape");
var p=document.createElement("v:path");
var str=document.createElement("v:stroke");
s.setAttribute("strokecolor","red");
s.setAttribute("strokeweight","3px");
s.setAttribute("coordsize","1,1");
s.style.cssText+="position:absolute;left:40px;top:40px;width:1px;height:1px;padding:0px;z-index:9999;";
p.setAttribute("v",pfad);
s.appendChild(p);
s.appendChild(str);
var vml=document.body.appendChild(s);
function kopieren()
{
var vmlKopie=vml.cloneNode('true');
//var vmlKopie=document.body.removeChild(vml);
alert(vmlKopie);
vmlKopie.style.top='300px';
document.body.appendChild(vmlKopie);
}
~~~~~~html
</script>
---------------------------------------------------
gruß
peter
Hallo,
hab jetzt einiges versucht und bin zu folgendem Ergebnis gekommen:
Das Klonen und Einfügen der Knoten funktioniert, jedoch werden die gesetzten Attribute nicht übernommen/geklont.
Namensraum ist nach dem Klonen und Einfügen auch korrekt. Wenn ich dem eingefügten Klon die ürsprünglichen (VML-)Attribute zuweise (strokeweight,strokecolor...) wirds einwandfrei angezeigt.
Habe viel gegoogelt und im Archiv gestöbert, das Problem mit den nicht mitgeklonten Attributen gibts anscheinend öfters (z.B. bei Formularfeldern), eine Lösung hab ich nicht gefunden.
Hat vielleicht jemand eine Idee oder einen Link für mich, wie man den IE dazu bringen könnte, die Attribute mitzuklonen?
Oder welche anderen Möglichkeiten gäbs noch, eine Kopie eines Knoten incl. aller Kindknoten zu erstellen ?
gruß
peter