Joe Nenning: Aus einem SVG-Dokument heraus CGI(hier: Perl) nutzen? Wie?

Hallo
Ich möchte aus einem interaktiven SVG heraus ein Perl-Sript aufrufen und bekomme Schwierigkeiten unter Netscape6 und Opera5.12.
Wer kennt sich da aus??

Knackpunkt ist: die Koordinaten, die sich während der Laufzeit im SVG ändern sollen an Perl übergeben werden.
Beipielcode:
<?xml version="1.0" standalone="no"?>
<svg xml:space="preserve" width="800" height="600">
<title>My Test</title>
  <script type="text/ecmascript">
  <![CDATA[
 var rect = document.getElementById("rechteck");
 var currentx = rect.getAttribute("x");
 var schalter="aus";
 var neu=parseInt(Math.random()*750);
 var x=neu;
 rect.setAttribute("width", neu);
 function schalt(flag){
 schalter=flag;
 }
 function rect_size(evt) {
 if (schalter=="ein") {rect.setAttribute("width", evt.clientX-currentx);
 x=evt.clientX-currentx;}
 }
 function lade()
 {
 window.location.href="perl.pl?xn="+x;
 }
  ]]>
  </script>
  <rect onclick="schalt('ein');rect_size(evt);schalt('aus')" onmousedown="schalt('ein')" onmousemove="rect_size(evt)" onmouseup="schalt('aus')" x="0" y="0" width="800" height="600" style="fill:white"/>
  <rect id="rechteck" onclick="schalt('ein');rect_size(evt);schalt('aus')" onmousedown="schalt('ein')"  onmousemove="rect_size(evt)" onmouseup="schalt('aus')" x="50" y="50" width="1" height="100" style="fill:red; stroke:black; stroke-width:2"/>
  <a xlink:href="" onclick="lade()">
  <text x="50" y="200" font-family="Arial" font-size="12" text-anchor="middle">weiter</text>
  </a>
</svg>

  1. tach ;-)

    Ich hab dein SVG mal auf die Schnelle durchprobiert, und eigentlich nur einen winzigen "Fehler" gefunden:

    function lade()
    {
    window.location.href="perl.pl?xn="+x;
    }

    hier muß lediglich der korrekte Pfad zum cgi-bin-Verzeichnis angegeben werden, dann klappts. Bei einem Probeaufruf hatte ich hier stehen:
    window.location.href="/cgi-bin/env.cgi";

    ... ein kleines Script zum Auslesen der Umgebungsvariablen, das ich für solche und ähnliche Tests standardmäßig benutze.
    Wie gesagt, hat bei mir funktioniert.

    Grüße aus Berlin

    Christoph S.

    1. tach ;-)

      Ich hab dein SVG mal auf die Schnelle durchprobiert, und eigentlich nur einen winzigen "Fehler" gefunden:

      function lade()
      {
      window.location.href="perl.pl?xn="+x;
      }

      hier muß lediglich der korrekte Pfad zum cgi-bin-Verzeichnis angegeben werden, dann klappts. Bei einem Probeaufruf hatte ich hier stehen:
      window.location.href="/cgi-bin/env.cgi";

      ... ein kleines Script zum Auslesen der Umgebungsvariablen, das ich für solche und ähnliche Tests standardmäßig benutze.
      Wie gesagt, hat bei mir funktioniert.

      Grüße aus Berlin

      Christoph S.

      Danke Christoph
      deine Antwort hilft mir leider nicht weiter, denn die Zeile oben (perl.pl)ist nur ein Beispiel. Tatsache ist, dass es mit MSIE geht, aber nicht mit Opera oder Netscape 6.
      Zum Testen könnte man z.B. statt perl.pl genauso gut ohne Server irgendeine HTML-datei nehmen z.B. index.html.-->klappte bei mir trotzdem nich

      Grüße Joe

      1. Hi,

        deine Antwort hilft mir leider nicht weiter, denn die Zeile oben (perl.pl)ist nur ein Beispiel. Tatsache ist, dass es mit MSIE geht, aber nicht mit Opera oder Netscape 6.
        Zum Testen könnte man z.B. statt perl.pl genauso gut ohne Server irgendeine HTML-datei nehmen z.B. index.html.-->klappte bei mir trotzdem nich

        Du weist aber schon, dass das Adobe-Plugin den NN6 offiziell nicht
        unterstützt, oder. Also daran könnte es auch liegen.

        bye eddie

        1. Hallo,

          Du weist aber schon, dass das Adobe-Plugin den NN6 offiziell nicht
          unterstützt, oder. Also daran könnte es auch liegen.

          In der Doku zum SVG Viewer 3.0 steht nur, dass es evtl. Probleme beim Drucken mit Netscape 6 geben kann.

          MfG, Thomas

        2. hi ebenfalls;

          Du weist aber schon, dass das Adobe-Plugin den NN6 offiziell nicht
          unterstützt, oder. Also daran könnte es auch liegen.

          upsala, ich hab nicht daran gedacht, daß Joe möglicherweise "nur" das Adobe Plugin hat. Damit macht Netscape tatsächlich Probleme, und Opera auch. Ich habe mir von http://xml.apache.org/batik/dist/ etwas geholt, was es auch Netscape ermöglicht, SVG anzuzeigen, allerdings hab ich dazu noch bissel "nachbessern" müssen. Aber das batik-Projekt ist "a Java(tm) technology based toolkit for applications that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation or manipulation.
          The project's ambition is to give developers a set of core modules which can be used together or individually to support specific SVG solutions. Examples of modules are the SVG parsers, the SVG generator and the SVG DOM implementation..."

          Grüße aus Berlin

          Christoph S.

          1. Hallo,

            upsala, ich hab nicht daran gedacht, daß Joe möglicherweise "nur" das Adobe Plugin hat. Damit macht Netscape tatsächlich Probleme, und Opera auch.

            Zumindest Mozilla 0.9.7 macht AFAIK keine Probleme mit dem SVG Viewer 3.0. Jedenfalls funktioniert mein Beispiel dort so wie im IE: http://www.styleassistant.de/tips/TMs10kSVGDemo.htm.

            MfG, Thomas