hans: Globale Variablen beim Event onLoad

Ich habe ein Problem mit Javascript. In einer SVG-Datei soll beim Starten ein paar Werte ausgelesen werden (Funktion init2), die als globale Variablen definiert sind, um sie in späteren Funktionen wiederzuverwenden:

var theSVGMap;
var theSVGDoc;
var theActScale;
var theActTrans;
var theActTransX;
var theActTransY;
var theActInnerW;
var theActInnerH;
var theActOuterW;
var theActOuterH;
var viewbox;
var viewboxes;
var theActVBx;
var theActVBy;
var theActVBw;
var theActVBh;

function init2(e) {
   theSVGMap = top.window.frames.item."oneFrame").document.theSVGGraphik.getSVGDocument();
   theSVGDoc = theSVGMap.getDocumentElement();
   theActScale = theSVGDoc.getCurrentScale();
   theActTrans = theSVGDoc.getCurrentTranslate();
   theActTransX = theActTrans.getX();
   theActTransY = theActTrans.getY();
   theActInnerW = window.innerWidth;
   theActInnerH = window.innerHeight;
   theActOuterW = window.outerHeight;
   theActOuterH = window.outerWidth;

viewbox = new String(theSVGDoc.getAttribute("viewBox"));
   viewboxes = viewbox.split(' ');
   theActVBx = viewboxes[0];
   theActVBy = viewboxes[1];
   theActVBw = viewboxes[2];
   theActVBh = viewboxes[3];

alert(theActScale + '\n' +
         theActTransX + '\n' +
         theActTransY + '\n' +
         theActInnerW + '\n' +
         theActInnerH + '\n' +
         theActOuterW + '\n' +
         theActOuterH + '\n' +
         theActVBx + '\n' +
         theActVBy + '\n' +
         theActVBw + '\n' +
         theActVBh);

}

function tu_was(e) {

alert(theActScale + '\n' +
         theActTransX + '\n' +
         theActTransY + '\n' +
         theActInnerW + '\n' +
         theActInnerH + '\n' +
         theActOuterW + '\n' +
         theActOuterH + '\n' +
         theActVBx + '\n' +
         theActVBy + '\n' +
         theActVBw + '\n' +
         theActVBh);
}

Wenn ich dann aber mit einem Button die Funktion tu_was aufrufe sind die gloablen Variablen alle "undefiniert". der alert in der Funktion init2(e) gibt mir aber alle Variablen richtig zurück. Was mache ich falsch?

Leider habe ich keine Hopepage, aus diesem Grunde der Versuch auf diese Art und Weise.

hans

  1. die als globale Variablen definiert sind, um sie in späteren Funktionen wiederzuverwenden:

    Deklariert hast du sie, das ist wahr, aber nicht definiert.

    Holla Herr Wirt, bitte ein Bier.

    1. wie sieht eine definierte Variable aus?

      var x=0; ????

      und eine deklarierte

      var x; ?????

      beide veruche liefern das gleich ergebnis: Variable undefiniert!

      hans

      1. wie sieht eine definierte Variable aus?

        var x=0; ????

        und eine deklarierte

        var x; ?????

        So richtig. Wenn du die Variablen in deinem Beispiel nur innerhalb der Funktion definierst, sind es lokale Variable.
        Ergo: Ausserhalb der Funktion definieren.

        Herr Wirt, bitte einen (weiteren) Kurzen auf das Bier.

        1. wie du siehst habe ich das ja gemacht. auch wenn ich die variablen auf einen wert setze, ändert sich nichts.

          hans