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:
-
var SVGloader = function() {
-
var images = document.getElementsByTagName(‚img‘);
-
for(var i=0; i<images .length; i++) {
-
if(images[i].getAttribute(’src‘).match(/\.svg$/)) {
-
var object = document.createElement(‚object‘);
-
with(object) {
-
setAttribute(‚type‘, ‚image/svg+xml‘);
-
for(var j=0; j<images[i].attributes.length; j++) {
-
if(images[i].attributes[j].nodeName != ’src‘) {
-
setAttribute(images[i].attributes[j].nodeName, images[i].attributes[j].nodeValue);
-
} else {
-
setAttribute(‚data‘, images[i].attributes[j].nodeValue);
-
}
-
}
-
}
-
images[i].parentNode.replaceChild(object, images[i]);
-
}
-
}
-
};
-
-
window.onload = function(event) {
-
SVGloader();
-
};
- von stephantom am 26. September 2007 in:
- (X)HTML/ CSS,
- JavaScript, AJAX
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!
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.
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.
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.