The Alex.: Feststellen ob WINDOW.OPEN funktioniert hat!

Schönen guten Abend!

Ich suche eine Möglichkeit, um festzustellen ob ein Fenster, welches mit window.open (JavaScript) geöffnet werden sollte, danach auch tatsächlich geöffnet wurde oder ob der Browser keine Pop-Ups öffnet. Da moderne Browser diese Funktion bieten und sicher auch einige User davon Gebrauch machen, halte ich es für notwendig, so eine Funktion in meine Seite einzubauen.
"Fenstername.closed" funktioniert in diesem Zusammenhang übrigens nicht, habe ich schon ausprobiert (mit Opera 7), das gibt nur eine Fehlermeldung (hätte ja sein können).

Hat jemand eine Idee?

Gut' Nacht
 The Alex.

  1. hi Alex

    ff = window.open(z ,"fenster1",parameter);
      if(!ff){alert("kein Fenster");}
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      probier mal das hier

    bis bis roman

    1. Hey,

      da wäre ich aber sehr vorsichtig, ich denke es kann nicht sichergestellt werden, dass diese asynchrone Ausführung von Codes dafür sorgt, dass das ff schon belegt ist, während das Fenster nocht geöffnet wird. Ich wäre da mehr für eine Schleife oder irgend etwas, was auf eine Bestätigung aus dem PopUp-Fenster wartet (z.B. die Existenz eines Hidden-Feldes oder so).

      MfG
      Rouven

      --

      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. Moin!

        da wäre ich aber sehr vorsichtig, ich denke es kann nicht sichergestellt werden, dass diese asynchrone Ausführung von Codes dafür sorgt, dass das ff schon belegt ist, während das Fenster nocht geöffnet wird. Ich wäre da mehr für eine Schleife oder irgend etwas, was auf eine Bestätigung aus dem PopUp-Fenster wartet (z.B. die Existenz eines Hidden-Feldes oder so).

        Am schlauesten wäre es folglich, in der Seite, die im Popup geladen wird, onload oder direkt einen Code auszuführen, der in der öffnenden Seite ein Flag setzt, welches man abfragen kann. Oder es wird eine Funktion aufgerufen.

        Zugriff auf das öffnende Fenster geht mit opener. :)

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      2. da wäre ich aber sehr vorsichtig, ich denke es kann nicht sichergestellt werden, dass diese asynchrone Ausführung von Codes dafür sorgt, dass das ff schon belegt ist, während das Fenster nocht geöffnet wird. Ich wäre da mehr für eine Schleife oder irgend etwas, was auf eine Bestätigung aus dem PopUp-Fenster wartet (z.B. die Existenz eines Hidden-Feldes oder so).

        Die Frage war, ob window.open erfolgreich ausgeführt wurde oder ob das öffnen geblockt wurde. da ist also keine asynchrone Ausführung, was du meinst ist der Zugriff auf eine Dokument in dem Fenster aber darum geht es hier nicht.

        Bei mir (MZ 1.4) funktionert der Code einwandfrei:

        var ff = window.open('', '');

        if(ff) alert('Fenster wurde geöffnet');

        Struppi.

        1. Sorry Leute, es klappt nicht! :-(

          Also Mozilla 1.4 öffnet das Fenster auch dann brav, wenn ich Popups in seinen Einstellungen unterdrückt habe.
          Und Opera 7.11 ignoriert scheinbar JEGLICHEN JavaScript-Code nach der window.open-Anweisung, wenn Popups unterdrückt sind! Selbst so was wie
          'window.open(...); alert("hallo");'
          geht dann nicht mehr!
          Es ist also auch nicht möglich, dann noch irgendwelche Fragen zu formulieren, ob das Fenster denn geöffnet wurde, da das einfach ignoriert wird!
          Selbst das Auslagern des window.open-Befehls in eine eigene Funktion mit return-Wert bringt nichts!
          Man müßte die Sache also irgendwie anders angehen... Bloß wie?

          Gruß
           The Alex.

          Bei mir (MZ 1.4) funktionert der Code einwandfrei:
          var ff = window.open('', '');
          if(ff) alert('Fenster wurde geöffnet');

          Schon klar, bloß eine Meldung soll nur dann kommen, wenn das Fenster NICHT geöffnet wurde. So nach dem Motto "Ein Fenster konnte nicht geöffnet werden."

          1. Bei mir (MZ 1.4) funktionert der Code einwandfrei:
            var ff = window.open('', '');
            if(ff) alert('Fenster wurde geöffnet');

            Schon klar, bloß eine Meldung soll nur dann kommen, wenn das Fenster NICHT geöffnet wurde. So nach dem Motto "Ein Fenster konnte nicht geöffnet werden."

            Ich wollte damit sagen, das bei mir das alert() nur kommt, wenn ich das Fensteröffnen erlaube. Und wie man eine if ... then ... else Bedigung baut, bzw eine negative Bedingung abfragt ist dir bekannt oder nicht?

            Struppi.

            1. Hallo wieder.

              Schon klar, bloß eine Meldung soll nur dann kommen, wenn das Fenster NICHT geöffnet wurde. So nach dem Motto "Ein Fenster konnte nicht geöffnet werden."

              Ich wollte damit sagen, das bei mir das alert() nur kommt, wenn ich das Fensteröffnen erlaube. Und wie man eine if ... then ... else Bedigung baut, bzw eine negative Bedingung abfragt ist dir bekannt oder nicht?

              Doch, doch, das ist mir bekannt.
              Aber wie soll ich eine Abfrage einbauen? Soll ich schreiben:

              var ff = window.open(...);
              if(!ff)
               alert("Fenster konnte nicht geöffnet werden");

              Oder etwas ähnliches?
              Das klappt ja nicht, da Opera (scheinbar) alles nach window.open ignoriert, wenn das Fenster unterdrückt wird!! Ich kriege höchstens eine Abfrage hin, wenn das Fenster geöffnet wurde, aber nicht, wenn es nicht geöffnet wurde!
              Und vor window.open kann ich ja nicht abfragen, ob das Fenster geöffnet werden wird.
              Verstehst Du mein Problem?

              The Alex.

              1. Das klappt ja nicht, da Opera (scheinbar) alles nach window.open ignoriert, wenn das Fenster unterdrückt wird!! Ich kriege höchstens eine Abfrage hin, wenn das Fenster geöffnet wurde, aber nicht, wenn es nicht geöffnet wurde!
                Und vor window.open kann ich ja nicht abfragen, ob das Fenster geöffnet werden wird.
                Verstehst Du mein Problem?

                Ja, klar ;-)

                wie sieht es aus, wenn du vorher fragst ob window.open existiert?

                if(window.open) ....
                oder
                if( typeof window.open == 'function') ....

                Struppi.

                1. wie sieht es aus, wenn du vorher fragst ob window.open existiert?

                  if(window.open) ....
                  oder
                  if( typeof window.open == 'function') ....

                  So, jetzt hatte ich mir mal die Mühe gemacht und Opera angeworfen.

                  Also, es geht nicht.

                  Es ist wie du sagst, wenn man popups ablehnt wird der Code nur bis zum window.open() ausgeführt und danach sang und klanglos abgebrochen. Das halte ich nicht für besonders durchdacht von Opera.

                  Struppi.

                  1. Moin.

                    Also, es geht nicht.
                    Es ist wie du sagst, wenn man popups ablehnt wird der Code nur bis zum window.open() ausgeführt und danach sang und klanglos abgebrochen.

                    Tja, schade. Danke trotzdem.

  2. Dankesehr, ich versuche mein Glück mal.
     The Alex.