Din0815: Variable mit JScript aus SVG auslesen

Hallo,

ich habe in einer html-Seite eine Java-Applet und eine SVG-Grafik eingebunden und will nun Variableninhalte vom SVG zur Java-Class übergeben (und evtl. auch umgekehrt). Da ich es auf dierektem Wege nicht hinbekommen habe sie anzusprechen (wenn es doch gehen sollte wäre ich für Hilfe dankbar!), habe ich ein Javascript in die html-Seite inegriert, welches die Arbeit übernehmen soll. Die Daten sollen also folgendermaßen übergeben werden:
SVG-Script --> Javascript --> Java
Vom JScript zum Java hab ich es mit document.*appletname*.*funktionsname* geschafft, aber ich schaffe es nicht mir die Daten aus dem Script im SVG zu ziehen. Kann mir da vielleicht jemand helfen oder mir ein funktionierendes Beispiel zeigen?

Wer sich mit SVG nicht auskennt, dem sei gesagt, daß es sich letzlich nur um XML handelt und ich im Prinzip da auch nur mit einem JavaScript hantiere. Prinziell sind es also nur 2 Javascripte in unterschiedlichen Dateien, die miteinander komuniziren sollen, wenn ich das bisher alles richtig mitbekommen hab.

Vielen Dank schon im Voraus!
Din0815

  1. Hallo,

    ich habe in einer html-Seite eine Java-Applet und eine SVG-Grafik eingebunden und will nun Variableninhalte vom SVG zur Java-Class übergeben (und evtl. auch umgekehrt).

    Gibt es fuer das Java-Applet (welches?) zur SVG-Darstellung keine Doku? Etwas mehr Details waeren schon angebracht.

    MfG, Thomas

    1. Gibt es fuer das Java-Applet (welches?) zur SVG-Darstellung keine Doku? Etwas mehr Details waeren schon angebracht.

      MfG, Thomas

      Das "(welches?)" versteh ich nicht. Hab im Java folgendes Geschrieben:
      public void setString(String aString){
        myString=aString;
      }

      und im JScript z.B.:
      document.svg.setString('hallo');

      und habe damit am Ende auf meiner Variable myString hallo stehen :-)

      und nun will ich einfach anstelle des 'hallo' den wert einer anderen variable (z.b. variablenname: tests), die im Script vom SVG definiert ist haben. und das bekomm ich einfach nicht hin :-(.

      Hab es unteranderem mal mit:
      <SCRIPT type="text/javascript">
      function datenuebergabe(){
        var test = document.getElementById(eg).getSVGDocument();
        document.svg.setString(test.getAttributeNS.tests);
      }
      </script>
      versucht, wobei die funktion natürlich im body aufgerufen wurde, aber es geht nicht. 'eg' ist hier übrigens der name meiner svg, die mit <embed> eingebunden wurde.

      Gruß Din0815

      1. Hallo,

        Das "(welches?)" versteh ich nicht.

        Also wird kein separates Applet zum Anzeigen von SVG verwendet (TinyLine kenne ich als Applet, deshalb meine Frage).

        var test = document.getElementById(eg).getSVGDocument();

        Mit getSVGDocument() kommt man im IE mit ASV-Plug-in an das eingebundene SVG heran.

        'eg' ist hier übrigens der name meiner svg, die mit <embed> eingebunden wurde.

        Aha, also doch keine Einbindung mittels <applet ...> usw.

        Verwende mal id="eg" und dann document.getElementById("eg").getSVGDocument() oder alternativ document.embeds["eg"].getSVGDocument().

        Letztlich liegt es aber an der ausfuehrenden Instanz hinter dem embed-Element (also z. B. dem ASV), ob der Zugriff auf das SVG-Dokument erfolgreich ist.

        MfG, Thomas

        1. Verwende mal id="eg" und dann document.getElementById("eg").getSVGDocument() oder alternativ document.embeds["eg"].getSVGDocument().

          auch wenn die frage jetzt etwas dumm klingt, aber ich bin nicht der java(script)profi.

          ich kann den befehl einfach so nehmen document.getElementById("eg").getSVGDocument().*variablenname der ausgelesen werden soll* oder muß da noch was wie getAttributeNS oder getValue mit rein? es funktioniert einfach nicht :-((

          1. Hallo,

            ich kann den befehl einfach so nehmen document.getElementById("eg").getSVGDocument().*variablenname der ausgelesen werden soll* oder muß da noch was wie getAttributeNS oder getValue mit rein? es funktioniert einfach nicht :-((

            Es ist noch immer nicht klar, welcher SVG-Viewer mit welchem Browser verwendet wird.

            Mit IE + ASV + embed ist dieses Vorgehen moeglich:

            document.embeds[0].window.x
            ... greift auf die (globale) Variable x im SVG-Kontext zu;

            document.embeds[0].window.bla()
            ... ruft Funktion bla() aus dem SVG-Kontext auf.

            Statt [0...embeds.length-1] alternativ ["name"] verwenden.

            MfG, Thomas

            1. Benutze IE mit dem Adobe SVG-Plugin. Sollte aber möglichst browserunabhängig funktionieren...

              1. Hallo,

                Benutze IE mit dem Adobe SVG-Plugin.

                Dann ist aus meiner Sicht alles gesagt.

                Sollte aber möglichst browserunabhängig funktionieren...

                HTML vs. SVG-Kommunikation via JS ist mit dem ASV unter anderen Browsern nicht moeglich (zumindest nicht mit Mozilla-Derivaten und Opera). Internes SVG-Scripting wird aber unterstuetzt.

                MfG, Thomas