SVG und PHP
Rafael
- php
Ich habe gerade ein kleines Problem mit der SVG-Grafik.
Ich erstelle Dynamisch aus Daten einer Datenbank eine SVG-Grafik, welche dann natürlich die Endung php trägt.
Im PHP header sende ich dann die SVG-Deklaration und binde die php-Datei extern über "<embed src="./adminsvg.php?id=00000" width="680"></embed>" ein.
Im Opera funktionier auch alles wunderbar. Grade sollte ich es demonstratrieren und fiel im Mozilla und im IE gewaltig auf die Nase. Da wird nichts angezeigt...
Wenn ich die Dateien dagegen direkt anspreche werden sie normal angezeigt.
Weiß jemand warum das so ist?
Danke für jede Hilfe!
Tach Rafael,
Ich erstelle Dynamisch aus Daten einer Datenbank eine SVG-Grafik, welche dann natürlich die Endung php trägt.
Im PHP header sende ich dann die SVG-Deklaration und binde die php-Datei extern über "<embed src="./adminsvg.php?id=00000" width="680"></embed>" ein.
Wird der passende Content-Type mitgesendet?
header("Content-Type: image/svg+xml");
Verwende ansonsten besser <object data="..." type="image/svg+xml">Alternativinhalt</object>
statt embed. Für den IE ist es ggf. hilfreich, am Ende einen Dummyparameter in der Form &ie=.svg anzuhängen.
Man liest sich,
svg4you
Der header wird korrekt gesendet. Ich hab gerade die Objekt-Variante ausprobiert. Dann funktioniert in Firefox und Opera alles wunderbar.
Aber im Internet Explorer bleibt der Hintergrund bläulich weiß (ich benutze den SVG-Viewer von Adobe).
Der Dummy-Tag bringt mich auch nicht weiter :(
Bei embed dagegen kann Firefox nur "echte" svg-Grafiken mit korrekter Endung darstellen.
Ich hab gerade die dynamische SVG-Ausgabe in eine neue Datei gepackt und es ausprobiert. Mit der SVG ist alles in Ordnung.
Bleibt nur eine Browserweiche? Oder gibt es bei embed-Tags eine Möglichkeit eine Typ-Deklaration mitzuschicken, damit Firefox alles kapiert?
Tach Rafael,
Bleibt nur eine Browserweiche? Oder gibt es bei embed-Tags eine Möglichkeit eine Typ-Deklaration mitzuschicken, damit Firefox alles kapiert?
Bei embed Zumindest nichts standardgemäßes. Wenn es object nicht bringt, würde ich zu iframe übergehen (Beispiel). Das erspart auch die Klick-Aktivierung des eingebundenen Inhaltes im IE.
Man liest sich,
svg4you
Danke, klappt toll! Ist semantisch zwar nicht die schönste Lösung, aber immerhin eine die überall klappt. Danke für den Tipp!