SVG-Grafiken im <img>-Element

Derzeit unterstützt kein Browser (von Amaya einmal abgesehen) SVG-Dateien, die über das <img>-Element eingebunden werden.
Ich habe mir selbst eine kleine Übergangslösung geschaffen, bis vernünftige Unterstützung da ist.
Der Code geht alle <img>-Elemente durch und überprüft, ob der Dateiname auf *.svg endet. Wenn dem so ist, wird das Element durch ein <object> mit den entsprechenden Attributen ersetzt.
Eventuell hilft das einmal jemandem :-)

CODE:
  1. var SVGloader = function() {
  2.   var images = document.getElementsByTagName(‚img‘);
  3.   for(var i=0; i<images .length; i++) {
  4.     if(images[i].getAttribute(’src‘).match(/\.svg$/)) {
  5.       var object = document.createElement(‚object‘);
  6.       with(object) {
  7.         setAttribute(‚type‘, ‚image/svg+xml‘);
  8.         for(var j=0; j<images[i].attributes.length; j++) {
  9.           if(images[i].attributes[j].nodeName != ’src‘) {
  10.             setAttribute(images[i].attributes[j].nodeName, images[i].attributes[j].nodeValue);
  11.           } else {
  12.             setAttribute(‚data‘, images[i].attributes[j].nodeValue);
  13.           }
  14.         }
  15.       }
  16.       images[i].parentNode.replaceChild(object, images[i]);
  17.     }
  18.   }
  19. };
  20.  
  21. window.onload = function(event) {
  22.   SVGloader();
  23. };

4 Kommentare to “SVG-Grafiken im <img>-Element”

  1.  Greg schrieb am 27. Sep 2007 um 13:40 zitieren

    Und der Sinn ist, dass man dann ggf. irgendwann einfach das JS entfernen kann? Ich fänd’s aber auch gut, wenn SVG mal langsam richtig (ohne Plugins etc.) überall laufen würde!

  2.  Blacker47 schrieb am 30. Sep 2007 um 17:30 zitieren

    Plugins brauchen doch die Opera und Firefox Fraktionen lange nicht.. und mit überall meinst du hoffentlich keinen IE. Der IE kann immer noch kein XHTML richtig, da darf man von SVG garnicht träumen.

    Und in mindestens eine der Alphas von denen (ist mir jetzt entfallen, ob Opera oder Firefox) soll die SVGs, per img-Tag eingebunden, anzeigen können.

  3.  Greg schrieb am 30. Sep 2007 um 17:33 zitieren

    Für Mozilla brauchte ich vor kurzem (1 Jahr?) noch ein Plugin um SVG-Dateien anzeigen zu können. Ohne Plugins war aber auch nur ein Beispiel.

  4.  stephantom schrieb am 01. Okt 2007 um 21:13 zitieren

    Und in mindestens eine der Alphas von denen (ist mir jetzt entfallen, ob Opera oder Firefox) soll die SVGs, per img-Tag eingebunden, anzeigen können.

    Opera war das. Für Gecko wurde das von der Roadmap gestrichen, weil Mozilla es nicht für notig hält Ressourcen auf SVG zu verschwenden. Was an Fortschritt da ist kommt zu 100% aus freiwilligen Quellen, Mozilla rückt kein Geld für Arbeiter raus.

Trackback-Adresse | RSS-Feed für die Kommentare abonnieren

Hinterlasse einen Kommentar:

XHTML: Du kannst diese Tags verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>