bereits geöffnet?
    


WWW.WEB-TOOLBOX.NET

ZURÜCK SITEMAP  

  Fensterkontrolle

Problem: Sie verwenden ein JavaScript zum Öffnen eines Windows innerhalb Ihrer Web-Präsenz mehrmals. Möglicherweise
  • verschwindet das Fenster bei Focusverlust im Hintergrund
  • versuchen sie das offene Fenster erneut zu öffnen
Aufgabe des Scripts ist es zu prüfen und entsprechend zu reagieren:

  • gibt es ein solches Fenster, ist das Pop-Up-Window noch geöffnet
  • evtl. in der Startleiste verschwunden?
  • gegebenenfalls ein neues Window öffnen
  • oder dem Window den Focus geben (nach vorne holen)
Diese Kontrolle ist nur möglich wenn dem Objekt "Window" ein Name 'verliehen' wurde der Namme ihnen bekannt ist. Über den Objektnamen des Pop-Up-Windows können dann Untersuchungen und falls erforderlich ensprechende Aktionen eingeleitet werden.

FensterEins=window.open('datei01.htm','Info01',width=350,height=250);
Ein Name wird einem Fensterobjekt üblichweise bei der Erzeugung zugeordnet. Über diesen Namen, der im browserinternen Speicher abgelegt wird, kann man die Eigenschaften für das Fenster abfragen oder auch mit zugelassenen Methoden anspechen.

So könnte man z.B. veranlassen, das Fenster zu schließen:
<a href="javascript:FensterEins.close()">Fenster zu</a>
Das nur zur Orientierung.




   Script zur Fensterkontrolle

Hier wird überprüft ob ein Fenster existiert und ob es geöffnet ist. Falls ja, wird dem Fenster die Eigenschaft focus() zugeordnet. Das bewirkt dass das u.U. in der Startleiste oder im Hintergrund versteckte Fenster "nach vorne geholt" wird.
(Falls es bereits im Vordergrund zu sehen ist, tuts ja auch nicht weh)

Erst prüfen, dann weiter. Möchten sie z.B. den Inhalt eines Fensters austauschen, macht das nur Sinn wenn das Fenster noch geöffnet ist. Mit einer Vorab-Prüfung ist man auf der sicheren Seite.

Der hier im Beispiel verwendete Objektname ist 'FensterEins'

var FensterEins = null;
  function FensterAuf()
  {
          if (FensterEins && !FensterEins.closed) {
                  FensterEins.focus();
          } else {
                  FensterEins = window.open("","_blank","");
          }
  }
  wenn (ein Window mit dem Namen 'FensterEins' existiert
        und das Window nicht geschlossen ist)

        {dann gebe dem Window den Focus}

  sonst
        {öffne ein Window mit dem Namen FensterEins}





FensterEins = window.open("xxx","_blank","yyy");







NACH OBEN