SVG mit Javascript nachladen
fisch_vier
- svg
0 molily0 fisch_vier0 fisch_vier0 molily
var n = document.createElement('embed');
n.type = 'image/svg+xml';
n.src = 'a.svg';
document.getElementById('b').appendChild(n);
Klappt in WebKit nicht! Es treten wahlweise, bei jedem Aufrufen der Seite, unterschiedliche Fehler auf: Entweder es wird gar nichts angezeigt, oder es wird sich über den MIME-Typen beschwert.
Was soll ich machen?
Ich möchte doch nur SVG-Bilder laden und anzeigen!
mfg, F.
Hallo,
var n = document.createElement('embed');
n.type = 'image/svg+xml';
n.src = 'a.svg';
document.getElementById('b').appendChild(n);
Hast du mal ein object-Element mit data- und type-Attributen ausprobiert, eventuell auch mit width/height?
> Es treten wahlweise, bei jedem Aufrufen der Seite, unterschiedliche Fehler auf: Entweder es wird gar nichts angezeigt, oder es wird sich über den MIME-Typen beschwert.
Welche Fehler genau? Du solltest natürlich dafür sorgen, dass der Server das SVG mit dem richtigen MIME-Typ ausliefert.
Siehst du das SVG-DOM im Web Inspector? Geht es in den anderen Browsern?
Grüße,
Mathias
Hallo,
var n = document.createElement('embed');
n.type = 'image/svg+xml';
n.src = 'a.svg';
document.getElementById('b').appendChild(n);
>
> Hast du mal ein object-Element mit data- und type-Attributen ausprobiert, eventuell auch mit width/height?
>
> > Es treten wahlweise, bei jedem Aufrufen der Seite, unterschiedliche Fehler auf: Entweder es wird gar nichts angezeigt, oder es wird sich über den MIME-Typen beschwert.
>
> Welche Fehler genau? Du solltest natürlich dafür sorgen, dass der Server das SVG mit dem richtigen MIME-Typ ausliefert.
> Siehst du das SVG-DOM im Web Inspector? Geht es in den anderen Browsern?
>
> Grüße,
> Mathias
Danke erstmal für deine Antwort!
-> Zwischen object und embed ist kein Unterschied festzustellen :(
-> Leider kann ich nicht für den richtigen MIME-Typen sorgen, weil ich keinen Zugriff auf den Server habe. Das ist aber anscheinend auch nicht das Problem: Mit einem SVG-File von w3.org gibt es die gleichen Probleme! Und die sollten ihren Server ja richtig eingestellt haben!
-> Nein, ich sehe das SVG-DOM nicht im Web-Inspector. Es wird auch gar kein Request gesendet! Das SVG-DOM sieht so aus: "<html><head></head><body></body></html>", so sieht z.B. auch ein iframe aus, wenn man dort nichts lädt.
Ich verstehe es einfach nicht! Jetzt gerade habe ich folgendes herausgefunden: Lade ich die Seite, drücke dann auf F12 (Developer Tools), dann nochmal F12 (Developer Tools schließen), dann wird plötzlich alles angezeigt!
Hääääääää??
Hier übrigens ein Beispiel: http://bauhaus.x.gg/
Hier übrigens ein Beispiel: http://bauhaus.x.gg/
Noch eine Idee: Erzeuge erst das volle object-Element mit type- und data-Attribut und hänge es dann ins DOM ein. Momentan setzt du das data-Attribut, wenn das object-Element schon im DOM ist.
Mathias