# Besteht die Möglichkeit mit JavaScript abzufragen ob ein Fenster exisitiert?



## kaipron (23. März 2006)

Hallo zusammen,
auf einer Seite öffne ich per JavaScript ein kleines Popup Fenster nach einem klick auf einem Link. Ich würde die Seite gerne nun Erweitern und stehe vor einem Problem.

Besteht die Möglichkeit mit JavaScript zu überprüfen ob ein Fenster mit einem definierten Namen exisitert?

Gruß
Kai


----------



## con-f-use (23. März 2006)

Es nicht ganz klar was du willst.

Du hast eine Seite. Von der aus öffnest du ein PopUp. Jetzt klickst du im PopUp auf einen Link und willst dann, das sich in der ursprünglichen Seite, also der, die das PopUp geöffnet hat etwas ändert?
Oder klickt du in der ursprünglichen Seite auf einen Link, nachdem das PopUp geöffnet wurde und willst, dass sich im PopUp etwsa ändert?

Ersteres löst du über das opener-Ojekt im PopUp.

Letzeres, indem du der window.open()-Anweisung beim öffnen des PopUps eine Variable zuweist. Also z.B.:
	
	
	



```
<a href="#" onclick="var PopUp = window.open('...','...','...');return false;">Blubb</a>
```
. Dann kanst du erstens prüfen, ob die Variable existiert, also das PopUP gefönnet ist und zweites über PopUp.document.Objekte/Methoden auf Elemente im PopUp zugreifen.


----------



## kaipron (23. März 2006)

con-f-use hat gesagt.:
			
		

> Es nicht ganz klar was du willst.
> 
> Du hast eine Seite. Von der aus öffnest du ein PopUp. Jetzt klickst du im PopUp auf einen Link und willst dann, das sich in der ursprünglichen Seite, also der, die das PopUp geöffnet hat etwas ändert?
> Oder klickt du in der ursprünglichen Seite auf einen Link, nachdem das PopUp geöffnet wurde und willst, dass sich im PopUp etwsa ändert?
> ...



Sorry wenn ich mich etwas ungenau ausgedrückt habe, ich versuchs aber nochmal besser zu erklären:

Ich habe eine Haupt-Browserfenster aus dem ich, nach einem Klick, ein Pupup Fenster öffne. Im Haupt-Browserfenster möchte ich nun an bestimmten stellen kucken ob das Popup Fenster noch offen ist, also noch exisitert oder schon vom Benutzer geschlossen wurde. Der Inahlt des Hauptfenster änderst sich. 

Mein Idee war es dem Popup Fenster einen Namen zu geben und im Hauptfenster eine Funktion die überprüft ob ein Fenster mit dem Namen exisitert oder nicht.


----------



## con-f-use (23. März 2006)

Also ich wiederhole mich ja nur ungern, aber:





			
				con-f-use hat gesagt.:
			
		

> Dann kanst du erstens prüfen, ob die Variable existiert, also das PopUp gefönnet ist und zweites über PopUp.document.Objekte/Methoden auf Elemente im PopUp zugreifen.


 Wenne s nicht mehr existiert gibt ein "if(PopUp.document)" den Wert "false" zurück.

Beispiel: 
	
	
	



```
<script type="text/javascript"><!--
var PopUp;
//-->
</script> 

<input type="button" value="PopUp öffnen!" onclick="PopUp= window.open('','','');" />
<input type="button" value="Teste ob geöffnet!" onclick="alert(PopUp.document ? 'PopUp offen' : 'PopUp geschlossen')" />
```
Bitte das nächste Mal die Beiträge genau lesen. Habe auf beide Möglichkeiten der Deutung deines Beitrages nämlich auch eine Antwort gegeben.


----------



## kaipron (24. März 2006)

con-f-use hat gesagt.:
			
		

> Also ich wiederhole mich ja nur ungern, aber: Wenne s nicht mehr existiert gibt ein "if(PopUp.document)" den Wert "false" zurück.
> 
> Beispiel:
> 
> ...




Danke dir für deine Antworten, leider funktioniert die Lösung nur solange sich die Hauptseite nicht ändern! Wenn sich die Hauptseite ändern, dann ist Variable PopUp undefiniert und er erkennt nicht ob das PopUp noch offen ist.


----------



## con-f-use (24. März 2006)

Okay, dann hast du prinzipell zwei möglichkeiten:

1.) Du sorgst dafür, dass die Variable PopUp in einem versteckten Frame, der sich nicht änderst steht.

2.) Du schreibst dir eine Funktion die entweder in einem Cookie oder in der URL speichert, ob das Fenster geöffnet ist. 

Das mit den Cookies setzt aber voraus, dass die User deiner Seite Cookies aktiviert haben. Methode 2 hat immer das Problem, dass du beim Schließen des PopUps die Cookies bzw. den URL löschen musst, also in das PopUp ein onunload einbauen musst.


----------

