Janosch: neues fenster offnen und mit javascript wieder schliessen

Hi,

ich will beim bildupload ein fenster öffen, das eine progressbar anzeit. dieses kleine fenster soll sich nach abschluss mit javascript schliessen lassen.

so hab ichs probiert:
openWindow('progress.php','upload','width=250,height=60')
das geht soweit aber jetzt kann ich es von aussen (Hauptseite) nicht mehr schliessen.

test war: <a href="javascript:upload.window.close(); ">test </a>
geht nicht. woran liegt das?

  1. so hab ichs probiert:
    openWindow('progress.php','upload','width=250,height=60')

    ^^^^^^^
    Das ist der Fenstername, den du z.b. bei einem Link als Target brauchst.
    openWindow ist kein gültiger JS Befehl.

    test war: <a href="javascript:upload.window.close(); ">test </a>

    ^^^^^^^

    Das ist eine Fenstereferenz die du brauchst um mit JS das Fenster anusprechen.

    Geht nicht ist keine Fehlermeldung, meine Glasgoogle http://glasgoogle.de sagt mir das dein dein Browser vermutlich sagt das das Objekt 'upload' undefiniert ist.

    Du brauchst die Fenstereferenz.

    Struppi.

    1. so hab ichs mal probiert. das fenster lässt sich aber nicht von aussen schliessen.

      function openprogress(){
         fenster = window.open("progress.php", "fern", "height=80, width=250,status=1")
         self.name = "test"
         if (fenster.opener == null)
            fenster.opener = self
      }
      function schliessen(){

      fenster.close()
      }

      1. self.name = "test"
           if (fenster.opener == null)
              fenster.opener = self

        Das ist überflüssig.

        }
        function schliessen(){

        fenster.close()
        }

        und was für eine Fehlermeldung erhälst du?

        Struppi.

      2. hi,

        so hab ichs mal probiert. das fenster lässt sich aber nicht von aussen schliessen.
        function openprogress(){
           fenster = window.open("progress.php", "fern", "height=80, width=250,status=1")
           ... }

        function schliessen(){
              fenster.close()
        }

        fenster wird innerhalb der funktion openprogress() zum ersten mal verwendet - daher ist es ausserhalb dieser funktion nicht bekannt.

        deklariere die variable ausserhalb der funktion, dann ist sie auch in schliessen() bekannt:

        var fenster;
        function openprogress(){ ... }
        function schliessen(){ ... }

        gruss,
        wahsaga