Servus!
Hallo ThomasM,
ich bin ja nicht so der SVG Spezi, darum sind das vielleicht dumme Fragen:
- <script> in SVG? ECHT? Ich lade mir ggf. Script in die Seite, wenn ich von irgendwo ein SVG einbinde? Ich hab Angst! Oder sind DOM Zugriffe dieses Scripts auf die Inhalte des SVG gesandboxt? Die Spec schreibt: Any functions defined within any ‘script’ element have a "global" scope across the entire current document. - aber was ist für die Spec das Document?
Nein, nur unter gewissen Umständen (mehr hier: SVG/Tutorials/SVG_und_JavaScript) Nur kurz: ein img darf kein script ausführen. Trotzdem haben aus diesem Grund viele CMS den Einsatz von SVG „verboten“. (Oder ein Plugin „reinigt“ das SVG von Scripten und externen Links auf weitere Seiten, die wieder andere Scripte aufrufen.)
Viele alte Beispiele waren und sind Standalone-SVGs. Heute, da man SVGs ohne Plugin darstellen kann, würde ich nur noch inline-SVG verwenden (und evtl. dynamisch erzeugen). Ausnahme sind Logos, die ich als img einbinden würde.
Auch im Wiki sind unsere Beispiele SVGs in HTML-Dokumenten.
- SVG ist XML, muss das Script da nicht in CDATA Kommentare eingeschlossen werden, so wie z.B. hier? Ok, die "bösen" Zeichen < > und & tauchen hier nicht auf, aber besser ist's wohl, oder?
Ja! Besser ist es imho aber die Zuständigkeiten zu trennen und das script-Element nicht irgendwo, sondern im Head oder am Ende des body-Elements zu notieren.
- Funktioniert das bei inline svg und einem als Image geladenen SVG gleichermaßen oder muss man da unterscheiden? Insbesondere bei der Frage: „Was ist das Document?“
siehe oben. Wenn der Wiki-Artikel nicht ausreichend ist, bitte erweitern!
[EDIT] Eine Übersicht über die möglichen Einbindung(en) von SVG (und was dann jeweils möglich ist) findet sich hier:
[/EDIT]
Herzliche Grüße
Matthias Scharwies
Ήταν διασκεδαστικό όσο κράτησε.
Χρύσιππος ὁ Σολεύς, 220 π.Χ.