Margin-Auto: Animationen über Ajax nachladen

Hi,

ich möchte in einer SVG-Datei Animationen (also konkret set- und animateMotion-Tags) über Ajax nachladen, was leider nicht funktioniert.

Andere Tags funktionieren: Hier erscheint nach Klick auf das grüne Quadrat ein nachgeladener fetter roter Kreis. Getestet sowohl in Opera 9.1. als auch im Seamonkey 1.1.1.. Der ASV 3.0 im IE 6 behauptet jedoch hier, dass er kein Ajax könne, dass also die Erzeugung des XMLhttprequest-Objektes fehlschlägt (HTML-Beispiele funktionieren jedoch).

Wenn ich jedoch hier versuche, die Animation nachzuladen tut sich gar nichts, nur das ebenfalls nachgeladene blaue Quadrat erscheint, wird jedoch nicht animiert (Opera). (Hier kann man in einer Datei ohne Nachladen sehen, wie es aussehen soll.) Wenn ich per JS im DOM nachschaue, sind die Elemente vorhanden, kommen aber offenbar nicht zum Einsatz.

Ist das eine generelle Beschränkung in SVG, dass man Animationen nicht per DOM einhängen kann oder mache ich was falsch? Und: Was mache ich falsch in der Erzeugung des "Ajax"-Objektes, dass der ASV es nicht versteht?

TIA

Margin-Auto

  1. Tach Margin-Auto,

    Ist das eine generelle Beschränkung in SVG, dass man Animationen nicht per DOM einhängen kann oder mache ich was falsch?

    Kann man durchaus. Allerdings unterstützt der ASV AJAX seit 2001 auf eigene Weise (das Buzzword kam ja erst 2005 ins Gespräch). Es gibt die Methoden getURL() bzw. postURL(). Frage also deren Existenz bzw. alternativ XMLHttpRequest() entsprechend ab, siehe PSE-Beispiel.

    Man liest sich,
    svg4you

    1. Hi,

      Kann man durchaus. Allerdings unterstützt der ASV AJAX seit 2001 auf eigene Weise (das Buzzword kam ja erst 2005 ins Gespräch). Es gibt die Methoden getURL() bzw. postURL(). Frage also deren Existenz bzw. alternativ XMLHttpRequest() entsprechend ab, siehe PSE-Beispiel.

      Danke für den Hinweis. Das "statische" Beispiel funktioniert jetzt. Die Animationen im "dynamischen" kommen aber offenbar immer noch nicht zum Einsatz. Im DOM sind die entsprechenden nachgeladenen Tags vorhanden.

      Margin-Auto

      1. Tach Margin-Auto,

        Das "statische" Beispiel funktioniert jetzt. Die Animationen im "dynamischen" kommen aber offenbar immer noch nicht zum Einsatz. Im DOM sind die entsprechenden nachgeladenen Tags vorhanden.

        Probiere es mal unter Mitgabe des SVG-Namensraums mittels passender create-Methoden, ggf. über Dokumentfragmente.

        Man liest sich,
        svg4you

        1. Hi,

          Probiere es mal unter Mitgabe des SVG-Namensraums mittels passender create-Methoden, ggf. über Dokumentfragmente.

          Vielen vielen Dank! Damit läuft es jetzt! Zu bewundern unter den angegebenen URLs. Sowohl in Opera, als auch im ASV sowie in Gecko (dort natürlich nur das "statische" Beispiel).

          Die Notation mit .item(i) anstelle von [i], die der ASV ja verlangt ist also auch standardkonform(?).

          Margin-Auto

          1. Tach Margin-Auto,

            Die Notation mit .item(i) anstelle von [i], die der ASV ja verlangt ist also auch standardkonform(?).

            Ja, item() ist eine Methode von NodeList-Objekten.

            Man liest sich,
            svg4you