Andy: Globale Variablen?

Hi,
Gibt es Variablen die außerhalb von Scripts erhalten bleiben (im Fenster oder HTML).

mfg
Andy

  1. Hi,

    Gibt es Variablen die außerhalb von Scripts erhalten bleiben (im Fenster oder HTML).

    Ja - globale Variablen ;-))

    Deklaration:
    * eben außerhalb der Funktion (aber innerhalb einer JS-Definition)
    * innerhalb einer Funktion, bei Abwesenheit des "var" Bezeichners.

    Grüße,
    Martin

    1. Hi,

      Gibt es Variablen die außerhalb von Scripts erhalten bleiben (im Fenster oder HTML).

      Ja - globale Variablen ;-))

      Deklaration:
      * eben außerhalb der Funktion (aber innerhalb einer JS-Definition)
      * innerhalb einer Funktion, bei Abwesenheit des "var" Bezeichners.

      Grüße,
      Martin

      Martin,

      Sobald man den Script schliesst wird die globale Variable gelöscht.
      Gibt es aber Variablen die im ganzem HTML bestehen bleiben.

      Grüße
      Andy

      1. Hi Ihr,

        kleine Anmerkung: ein Objekt oder primitiver Variable, die innerhalb einer Funktion erzeugt wurde, existiert genau bis zum Ende dieser Funktion. D.h.: Ruft diese Funktion eine ander auf, so kennt auch diese Funktion die Variablen/Objekte unter den selben Bezeichnern.

        Bsp.:

        <script>
        function showIt()
        {
          alert(foo);
        }

        function doIt()
        {
          foo = 'hello babe';
          showIt();
        }

        doIt();
        </script>

        Ohne weiteres führt der Aufruf von doIt() zur korrekten Ausgabe von 'hello babe'.

        Ansonsten sind außerhalb jeglicher function-Bodies definierte Variablen auch "uberall sonst bekannt, z.B. auch in Eventhandlern, die direkt in HTML-Tags registriert werden.

        Wird das entsprechende Dokument "ungeladen", sind auch alle Variablen und Objekte zerst"ort, die zum entsprechenden window-Objekt geh"oren.

        Mirko

        1. Wird das entsprechende Dokument "ungeladen", sind auch alle Variablen und Objekte zerst"ort, die zum entsprechenden window-Objekt geh"oren.

          Hm, wie ist das wenn ich mit window.open ein neues Fenster öffne dann das Fenster in dem window.open steht aber schließe? Hier ist das Problem, dass zwar noch das neue Objekt besteht, aber die Variable über die ich das Objekt ansprechen könnte nicht mehr da ist. Eine "Ansprach" ist nur noch über target=fensterName möglich.

        2. Hi Du,

          1. »» kleine Anmerkung: ein Objekt oder primitiver Variable, die innerhalb einer Funktion erzeugt wurde, existiert genau bis zum Ende dieser Funktion.
          Richtig.

          2. »» D.h.: Ruft diese Funktion eine ander auf, so kennt auch diese Funktion die Variablen/Objekte unter den selben Bezeichnern.
          Falsch - das funktioniert _nur_, weil Du in der Funktion

          "foo = 'hello babe';", -> foo wird global

          und nicht

          "var foo = 'hello babe';" -> foo wäre lokal
           ^^^

          definiert hattest.

          Grüße,
          Martin

  2. Hallo Andy,

    durch Scripte können z.B. in einem Frameset Variablen in einem
    bestimmten Frame bzw. der betr. Datei erzeugt werden.
    Die anderen Teile des Frameset können darauf zugreifen, und
    die anderen Dateien des Frameset können dabei auch ersetzt werden.
    Globaler gehts nicht so einfach ausser per Cookies.
    Dazu gibt's noch einige Tricks wie Werteübergabe per loaction
    oder Fenster mit bestimmten Namen usw.

    Grüsse

    Cyx23

    1. Hallo Andy,

      durch Scripte können z.B. in einem Frameset Variablen in einem
      bestimmten Frame bzw. der betr. Datei erzeugt werden.
      Die anderen Teile des Frameset können darauf zugreifen, und
      die anderen Dateien des Frameset können dabei auch ersetzt werden.
      Globaler gehts nicht so einfach ausser per Cookies.
      Dazu gibt's noch einige Tricks wie Werteübergabe per loaction
      oder Fenster mit bestimmten Namen usw.

      Grüsse

      Cyx23

      Hi Cyx23,

      habe mit window.name probiert, es läuft aber ich brauche den namen.
      Was kann ich sonst benutzen ausser cookies.

      Grüsse

      1. N'Abend.

        habe mit window.name probiert, es läuft aber ich brauche den namen.

        Denn Fenster nehmen mußt du selbst mit JS vergeben,
        z.B. onClick="window.name='SchönesFenster';"

        Dieser Name bleibt dann erhalten und kann auch auf anderen Seiten (die ins gleiche Fenster geladen werden) abgefragt werden.

        Gruß,
        olli

        1. Hallo!

          Denn Fenster nehmen mußt du selbst mit JS vergeben,
          z.B. onClick="window.name='SchönesFenster';"

          Beachte aber, dass nur bestimmte Zeichen dafuer zulaessig sind, insbesondere Umlaute sind es nicht. Mehr dazu auf </selfaktuell/artikel/javascript/wertuebergabe/index.htm>.

          So long

          1. Hi Calocybe.

            Denn Fenster nehmen mußt du selbst mit JS vergeben,
            z.B. onClick="window.name='SchönesFenster';"

            Beachte aber, dass nur bestimmte Zeichen dafuer zulaessig sind, insbesondere Umlaute sind es nicht. Mehr dazu auf </selfaktuell/artikel/javascript/wertuebergabe/index.htm>.

            Das war zwar nur ein Beispiel, aber trotzdem vielen Dank für den Tipp.
            Ich hatte das bis jetzt wirklich nicht beachtet und wahrscheinlich nur zufällig immer richtig gemacht...

            Grüße,
            olli

      2. Hallo Andy,

        Was kann ich sonst benutzen ausser cookies.

        das mit der "Werteübergabe" reicht nicht ?

        Wenn du nur eine Variable mit wenigen möglichen Inhalten
        brauchst ginge evtl. noch der Pfad;
        wie schaut das Problem eigentlich aus ?

        Grüsse

        Cyx23