Objektexistenz prüfen / Keine 2 Fenster gleichzeitig öffnen
Matthias
- javascript
Ich habe folgendes Problem mit JavaScript:
Innerhalb einer HTML-Seite habe ich 2 Aufrufe von window.open
innerhalb je einer Funktion. Ich muß jedoch gewährleisten, dass nur
eines der beiden Fenster geöffnet sein darf. Es dürfen niemals beide
Fenster geöffnet sein. Sollte eines geöffnet sein, und ich versuche
das andere aufzurufen, muß eine entsprechende Meldung kommen. Eine
Idee war, im ersten Schritt zu prüfen ob das Objekt schon angelegt
wurde (also das erstemal geöffnet wurde), wenn ja prüfen ob es
zwischenzeitlich wieder geschlossen wurde (mit window.closed). Würde
ja alles schön klappen, wenn der Erstaufruf nicht wäre. Hier ist das
Objekt noch unbekannt. Definiere ich es manuell, sitzt aber
window.closed auf false, so das ich das Fenster nicht öffnen kann.
Eine direkte Zuweisung läßt der IE jedoch nicht zu.
Igendeine Idee??? Kann ich irgendwie abfragen ob ein Objekt (hier das
window-Object) exisiert??? Es sollte auch alles in der aufrufenden
Seite gehandelt werden, nicht in den aufgerufenen Seiten.
Für jeden Tipp bin ich dankbar.
Hi,
ich habe es jetzt nicht ausprobiert, aber es erscheint mir etwas merkwürdig, dass du sagst du kannst nicht mit dem closed etc. arbeiten:
<head>
<script type="text/javascript">
var win1 = null;
var win2 = null;
function oeffneFenster(fensterID) {
// pruefen ob eines der Fenster auf ist, wenn ja, dann schliessen
if (win1) { if (!(win1.closed)) { win1.close(); } }
if (win2) { if (!(win2.closed)) { win2.close(); } }
// nun das neue Fenster oeffnen
if (fensterID == 1) {
win1 = window.open(...);
} else {
win2 = window.open(...);
}
}
</script>
</head>
Oder hattest du ein anderes Problem?
MfG
Rouven
Igendeine Idee??? Kann ich irgendwie abfragen ob ein Objekt (hier das
window-Object) exisiert??? Es sollte auch alles in der aufrufenden
Seite gehandelt werden, nicht in den aufgerufenen Seiten.
Ja das kannst du, aber es ist in deinem Falle gar nicht nötig, da du einen Link mit Target in ein Fenster lenken kannst.
<a href="url_1.html"
target="fenster"
onclick="window.open(this.href, this.target).focus();return false;">link 1</A>
<a href="url_2.html"
target="fenster"
onclick="window.open(this.href, this.target).focus();return false;">link 2</A>
Das öffnet immer nur ein Fenster.
Struppi.
Habe eine Lösung für das Problem gefunden, danke für die Tipps. Das nächste Problem kommt vielleicht auch gleich...