Servus!
Hallo Julius
Aber woher soll die javascript.svg (bzw. das enthaltene JavaScript) denn wissen, dass sie über
img
-Element eingebunden wurde und nicht stand-alone ausgeführt wird?Diese Frage meinst du nicht wirklich ernsthaft?
Einerlei: Der SVG-Grafik ist das egal, nicht aber dem darin befindlichen JavaScript, das muss wissen, ob es im SVG-Raum ausgeführt werden soll oder wo anders.
Das Problem, wie Rainer der 2. hier schon aufwarf ist, das SVG einerseits ein Grafikformat beschreibt, die man als Bild in Webseiten einbindet, und man andererseits mit SVG eine XML-Auszeichungssprache hat, die sogar selbst ausführende Skripten integriert.
Bei meinen Versuchen im Wiki stieß ich irgendwann an eine Mauer: Man kann JavaScript in Standalone-SVGs ausführen, noch besser als inline-SVG.
Theoretisch ist es möglich SVG in mit object und iframe-eingebundenen OBjekten auszuführen, wenn die Namensräume beachtet werden. Wiki-Kapitel: Ansprechen von SVG-Elementen in externen Dateien . Praktisch kam ich da nicht weiter, und hatte noch soviel anderes zu tun.
Bei der Einbindung als img gelten aber einige Beschränkungen:
- MDN: SVG as an Image
- kein Ausführen von JS
- kein Laden weiterer externer Ressourcen wie Stylesheets, Bilder oder weiterer Scripts
Das ist auch das Problem mit SVG im Wiki und anderen CMS, wie Wordpress, die einfach Angst vor den Möglichkeiten von SVG haben.
Vielleicht gibt es irgendwann ein stadardisiertes "Sanitizing" von SVG-Code, der dann ungefährliche SVGs produziert, die man überall einbinden darf. Das mit SVG 2 begonnene Auslagern der Präsentations-Attibute in CSS-Module ist da vielleicht ein erster Schritt hin zu einer reinen Untermenge graphischer Auszeichnungselemente innerhalb von HTML5.
Herzliche Grüße
Matthias Scharwies
Es gibt viel zu tun: ToDo-Liste