SVG wird nach Einbinden durch JavaScript nicht angezeigt.
Dominik
- svg
Hallo.
Ich habe bereits nach meinem Problem im Internet gesucht, bin aber nicht fündig geworden:
Kontext:
Ich habe einen Java-Webserver implementiert. Ruft man diesen mit dem Browser auf, so kann man sich Graphen anzeigen lassen. Der Nutzer kann dabei zwischen einer tabellarischen und einer zweidimensionalen Ansicht wechseln. Für die zweidimensionale Darstellung lasse ich mir SVGs generieren, dich ich dann in die Webseite einbinde.
Die einzelnen Schritte:
Der Nutzer wechselt zur zweidimensionalen Ansicht und der Browser schickt per XMLHttpRequest-Object eine Anfrage an den Server. Der Server generiert die SVG, speichert sie und schickt dem Browser folgenden Code:
var div2D = document.getElementById("div2DGraph");
div2D.innerHTML = "";
var object = document.createElement("object");
object.data = "0GraphSnippet.svg";
object.type = "image/svg+xml";
div2D.appendChild(object);
Das div-Objekt mit der id div2DGraph ist vorhanden (also kein Schreibfehler ;) ).
Der Browser schickt eine Get-Anfrage an den Server um die SVG-Grafik zu erhalten. Der Server schickt die SVG-Datei und wird vom Browser empfangen. Allerdings zeigt mir Firefox 3.5 nur:
]> v5 Intersection v2 Intersection e4: Street 3 1 v3 CarPark v7 CarPark v1 Intersection v4 Intersection e3: Street 1 2 e1: Street 1 1 e6: Street 2 2 e8: Street 1 3 e2: Street 1 2
Ich verstehe nicht, warum er mir nicht die SVG anzeigt.
Ich habe folgendes bereits versucht:
1. Ich habe mir eine statische HTML-Seite erstellt, in der die gleiche SVG mittels den gleichen JavaScript befehlen geladen wird. Allerding steht der Code in der HTML-Datei und es findet keine Kommunikation mit dem Server statt. Öffne ich die Seite mit Firefox, wird die SVG korrekt angezeigt.
2. Mit Firebug habe ich den empfangenen JavaScript code überprüft. Ist korrekt angekommen.
3. Habe mir mit Firebug die empfangene SVG-Grafik kopiert. Eine neue .svg-Datei erstellt und den empfangenen Code dort hineinkopiert. Anschließend habe ich die MD5 Checksummen der neu erstellten und der original SVG-Datei verglichen. Beide stimmen überein.
4. Ich habe auch schon jeglichen CSS-Code aus der HTML-Seite entfernt. Allerdings wird die SVG-Grafik auch dann nicht angezeigt.
Hat jemand vielleicht schon mal ein ähnliches Problem gehabt, oder weiß jemand, woran das liegen kann oder wie man es behebt. Falls weitere Informationen benötigt werden, werde ich sie gerne zur Verfügung stellen.
Vielen Dank im Vorraus
Dominik
Hallo Dominik,
Ich verstehe nicht, warum er mir nicht die SVG anzeigt.
Sendet der Server tatsächlich den Inhaltstyp image/svg+xml?
Grüße,
Thomas
Hallo Thomas,
Sendet der Server tatsächlich den Inhaltstyp image/svg+xml?
danke für deinen Tip. Ich habe den Inhaltstyp auf image/svg+xml umgestellt und siehe da: Es funktioniert.
Viele Grüße
Dominik