hannibal: opener auf Existenz abfragen für IE5-PC - if(!opener)

Hallo,

das ist mein erster Beitrag in Eurem Forum. Habe leider keinen anderen Beitrag gefunden, der mein Problem löst.
Deswegen hier die Frage:

Es wird ein Mutterfenster geöffnet über window.location=etc.
Aus der Mutter wird ein Hilfefenster geöffnet mit "window.open(etc)"

Vom Hilfefenster kommt man mit "opener.focus()" zum Mutterfenster zurück. Andere Methoden haben nicht hingehauen, weil bei mehrfachem Hinundher das Mutterfenster keine focus mehr bekommt auf dem PC.

Wenn nun das Mutterfenster geschlossen wird und man vom Hilfefenster aus wieder auf den Link klick zum Mutterfenster kann das natürlich nicht mehr hinhauen.
Also habe ich eine if-Abfrage eingebaut:

if(!opener)dann öffne Mutter

das klappt auf dem IE5-Mac auch gut, aber nicht für den IE5-PC (nicht 5.5!).

Auch die Schreibweise für NN
if(operner.closed==true)öffneMutter
geht nur für den NN und nicht für IE5-PC.

Jetzt weiß ich nicht mehr weiter.
Habe alles mögliche ausprobiert:

zB. newWin=window.open(hilfefenster)
new Win.erzeuger=self;

Man kann dann zwar mit "erzeuger" arbeiten, aber nicht
if(!erzeuger) oder if(erzeuger.closed==1)fragen.
Das gibt entweder den Fehler "Objekt erwartet" oder "Zugriff verweigert" (???hatte ich noch nie)

Ich brauche nun dringend eine Schreibweise, wie ich den "!opener" zu einem verwertbaren Objekt für IE5-PC mache.

Hat da draußen jemand eine Idee???

Vielen Dank

--------------------

Hannibal

  1. Hi

    ich weiß kenn jetzt keine saubere Loesung, aber mit
    try/catch (IE5) koenntest du einen Fehler beim Zugriff auf den
    opener abfangen! Alternativ onError eventhandler!

    Hilfts?

    Tschau
    Rolf

    1. aber mit

      try/catch (IE5) koenntest du einen Fehler beim Zugriff auf den
      opener abfangen! Alternativ onError eventhandler!

      @Rolf

      über on Error hatte ich mir auch schon gedanken gemacht.
      Auf try/catch bin ich noch nicht gekommen.
      Ich habe beides noch nie verwendet und muß mir das erst anlesen.

      Also, wenn ich den Fehler abfangen könnte, kannn ich dann auch eine Reaktion, sprich Öffnen des geschlossenen Mutterfensters erreichen?
      Oder kommt dann einfach die große Leere, also es passiert weiter nichts.

      Weil, ich will doch das Fenster wieder öffnen, wenn es zu ist.
      Also würde ein Fehler bedeuten in diesem Falle, das es zu ist.
      Kann ich also sagen onError(window.open()) oder sowas?.

      oder

      FOR=document  EVENT=onError

      window.open(Mütterchen)

      Wenn das geht, dann wärs das.

      Erstmal Danke und viele Grüße

      1. Hi

        Ich habe beides noch nie verwendet und muß mir das erst anlesen.

        dito :-)

        Kann ich also sagen onError(window.open()) oder sowas?.

        IMHO ja! Allerdings solltest du sicher sein das nur diese Fehlerquelle in
        Frage kommt, sprich nur sehr wenig Code auf der entsprechenden Seite.

        Tschuessi
        Rolf

        1. @Rolf

          Danke.
          Hätte noch jemand einen Tip, wie man das mit try/catch macht?
          Ich bin mir ziemlich sicher, daß nur dort ein Fehler auftreten kann.

          Also

          if(!opener) geht für IE5-Mac, aber macht einen Fehler in IE5-PC und NN
          if(opener.closed==true) geht in NN macht aber eine Fehler in IE5 überhaupt.
          Und IE4.5-Mac macht bei allem einen Fehler.

          Da ich vorher eine CSS-Weiche vorgeschaltet habe, habe ich alle Browserversionen als Variablen vorrätig. (indexOf.Navigator.userAgent etc)

          Kann da jemand was mit anfangen???

          Danke

          Viele Grüße

  2. if(!opener)dann öffne Mutter

    das klappt auf dem IE5-Mac auch gut, aber nicht für den IE5-PC (nicht 5.5!).

    Schon mal if(!opener.closed) probiert?

    MfG, Thomas

    1. Schon mal if(!opener.closed) probiert?

      @MfG, Thomas

      Ich habe probiert if(opener.closed)
      aber das ist falsche Syntax, weil closed entwerder true oder false ist.
      also heißt das so:
      if(opener.closed==true)dann ist das Fenster geschlossen, wenn es true ist.
      Das geht für den NN, aber nicht für IE. Frag mich mal warum. So bin ich ja hier gelandet.

      Aber ich kanns ja trotzdem mal versuchen.

      Dank und viele Grüße

      1. Schon mal if(!opener.closed) probiert?

        @MfG, Thomas

        Ich habe probiert if(opener.closed)
        aber das ist falsche Syntax, weil closed entwerder true oder false ist.
        also heißt das so:
        if(opener.closed==true)dann ist das Fenster geschlossen, wenn es true ist.

        if(!opener.closed) ist durchaus keine falsche Syntax, es verneint die Pruefung auf closed, d. h. wenn not closed, dann noch geoeffnet. Explizite Abfragen auf ==true oder ==false macht man eher selten.

        Analog fragt zum Beispiel if(!document.layers) nach Browsern, die keine Layers-Collection kennen.

        Vermutlich liegt es doch am verwendeten Browser.

        MfG, Thomas