Guten Morgen miteinander.
Folgendes Problem:
Ich kann in meiner Seite SVG-Elemente mittels "Inline-Code" einbinden, das klappt wunderbar.
Nun möchte ich per JavaScript weitere SVG-Elemente erstellen und in die Seite integrieren. Wenn ich die onclick-Funktion (siehe unten) ausführe, dann sehe ich mittels Firebug auch, dass das neu erstellte SVG-Element im Quellcode korrekt eingebunden wird.
Nur stellt es der Firefox leider nicht dar.
Wenn ich aber vorher im Quellcode statisch zumindest den <svg>-Block erstelle, kann ich nachträglich per Javascript z.B. das Rectangle-Element in den SVG-Block einhängen, das wird dann auch angezeigt.
Müssen diese SVG-Elemente direkt beim Laden der Seite immer vorhanden sein?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript">
function addSvg(element)
{
var svgElement = document.createElement("svg");
svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
svgElement.setAttribute('version', '1.1');
svgElement.setAttribute('width', '100px');
svgElement.setAttribute('height', '100px');
svgElement.setAttribute('viewBox', '0 0 100 100');
var rectElement = document.createElement("rect");
rectElement.setAttribute('x', '50');
rectElement.setAttribute('y', '50');
rectElement.setAttribute('width', '40');
rectElement.setAttribute('height', '40');
svgElement.appendChild(pathElement);
element.appendChild(svgElement);
}
</script>
<title>test</title>
</head>
<body>
<div onclick="addSvg(this); style="width: 200px; height: 200px;">
<!-- Dieses SVG-Objekt stellt er korrekt dar. -->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100px" height="100px" viewBox="0 0 100 100">
<rect x="0" y="0" width="40" height="40"/>
</svg>
</div>
</body>
</html>