rrrrrrrrrrr, was paßt da an meinem script nicht??

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rrrrrrrrrrr, was paßt da an meinem script nicht??

    Hi Leute!

    Ich sende von Flash aus die Variable "beenden" mit Inhalt "true" an meine JS-Function "winclose(beenden)".
    Solange von Flash aber nix kommt soll die Variable den Wert "false" haben damit der browser in die erste If-Anweisung (mit der confirm-methode) reinkommt. Das sage ich ihm vorm Funktionsaufruf.
    Öffne ich die htm (und schicke die variable nicht von flash) und klicke im JS-Fenster auf "x" kommt der Browser offensichtlich nie in die If mit der Confirm-Methode rein weil er immer ohne zu fragen das fenster schließt obwohl ich "beenden" auf "false" setze.

    <script language="JavaScript">
    beenden=false;
    function winclose(beenden){
    if(beenden == false) {
    Check = confirm("Wollen Sie wirklich schließen?");
    } else {
    window.close();
    }
    if(Check == false) window.open("showit.htm","","toolbar=no,menubar=no,resizeable=no,width=720,height=500");
    }
    </script>

    Was paßt da nicht??

    $PHP resource 4ever$

  • #2
    Da fehlt der Eventhandler, der winclose(beenden) aufruft, wenn der Benutzer das Fenster zu schließen versucht.

    CAT Music Files

    Kommentar


    • #3
      ne, der ist drinnen.

      <body bgcolor="#003300" text="#000000" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" onUnload="winclose()">

      ohh, sh.t
      müßte aber so heißen, oder??
      <body bgcolor="#003300" text="#000000" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" onUnload="winclose(beenden)">
      $PHP resource 4ever$

      Kommentar


      • #4
        danke Sky. Funkt schon.
        Eine Frage hätt ich in diesem Zusammenhang aber noch:
        Ich setze
        beenden=false;
        und rufe dann die
        function winclose(beenden){
        ....
        auf. Wenn ich von Flash die Variable mit true rüberbekomme wird die doch in der momentanen Reihenfolge wieder mit false überschrieben, oder??
        Wenn ja, wie kann ich das lösen, dass das nicht passiert?
        $PHP resource 4ever$

        Kommentar


        • #5
          Beenden wird nur einmalig auf false gesetzt, und zwar dann, wenn die Datei vom Browser geladen wird. Würde also Flash vor dem Aufruf der Datei true setzen, dann würde sie mit false überschrieben. Ist die Datei allerdings bereits geöffnet, entstehen keine Probleme.

          CAT Music Files

          Kommentar


          • #6
            gut. dann sollten keine probleme entstehen. ich lade nämlich vorher die komplette htm (die wiederum den Flash-file-Aufruf enthält) in ein JS-Fenster. In diesem Fenster befindet sich dann die eigentliche flash-anwendung. Von dort aus sende ich nach einem bestimmten zeitraum die variable beenden=true raus. Klicke ich dann auf "x" müßte es funtzen.
            $PHP resource 4ever$

            Kommentar


            • #7
              Da du "beenden" als globale Variable definiert hast, brauchst du doch im Eventhandler keinen Parameter mehr an die Funktion übergeben.
              Kleiner Tip: Ich würde Funktions-Parameter und Variablen unterschiedlich benennen, sonst kommt man schnell durcheinander .

              Der else-Zweig ist IMHO auch nicht nötig. Das Fenster wird ja auf alle Fälle geschlossen, also ist doch ein window.close() überflüssig. Nur falls check==true ist wird ein neues Fenster geöffnet, aber das findet ja unabhängig vom Schließen-Ereignis des ersten Fensters statt.

              Kommentar


              • #8
                danke für den Tip. hab's jetzt so gemacht. funkt auch.

                bye
                $PHP resource 4ever$

                Kommentar

                Lädt...
                X