Seite 1 von 1

Mal wieder Javascript: Überprüfen ob Opener funktioniert...

Verfasst: 19.02.2005 16:55
von D@ve
Warum funktioniert folgendes nicht?

Javascript:

Code: Alles auswählen

            function close_opener()
            {
              if (opener)
              {
                  opener.top.close();
              }
            }
Aufruf:

Code: Alles auswählen

  <frameset onload="close_opener();">
Die Seite kann entweder per javascript open() oder eben über einen normalen Link geöffnet werden. Da in letzterem Fall kein Opener existiert, wollte mit obiger Funktion abfragen, ob er existert was allerdings nicht funktioniert... :-(

Gruß, Dave

Verfasst: 19.02.2005 19:03
von Blutgerinsel
D@ve hat geschrieben:Warum funktioniert folgendes nicht?
Was sinnfrei und nicht der DOM Referenz entspricht kann nicht funktionieren......

Wenn ich ein Popup öffne und darin den Link platziere:

Code: Alles auswählen

<a href="javascript:popuphandle()">Was geht mit dem Hauptfenster ey</a>
Und eine Function reinpflanze ala

Code: Alles auswählen

<script type="text/javascript">
		<!--
 			function popuphandle()
 				{
 					if (opener)
 						alert('existiert');
 					else
 						alert('existiert nicht');
 				}
		//-->
		</script>
Dann bekomme ich wenn das Hauptfenster geöffnet ist "existiert" zurückgegeben und wenn ich es manuell schließe "existiert nicht" zurückgegeben.................

Hab noch nie mit mit dem Opener Objekt gearbeitet aber naja DOM Referenz anschauen hilft :D

Verfasst: 19.02.2005 19:17
von D@ve
Was entspricht daran nicht der Referenz???
Wenn ich ein Popup öffne und darin den Link platziere:
Mein Problem ist, dass das Fenster eben auf zwei verschiedene Arten aufgerufen wird, entweder durch ein window.open-Befehl oder eben direkt per URL und deswegen kann ich den opener nicht einfach pauschal schließen sondern will erst überprüfen ob er existiert.

Als Fehlermeldung bekomme ich:
Der Aufgerufene (Server, nicht die Sereranwendung) ist nicht verfügbar und kann nicht gefunden werden, Alle Verbindungen sind ungültig. Der Aufruf wurde nicht ausgeführt
Das ist so ziemlich das nichtssagendste was ich von Javascript je gesehen habe.

Ich hab alles probiert mit if

Code: Alles auswählen

(opener == null)
kommt zwar keine Fehlermeldung, aber dafür wird das Fenster nicht geschlossen...
naja DOM Referenz anschauen hilft
Vielen Dank!!! :evil: Wenn es geholfen hätte, hätte ich die Frage hier nicht gestellt.

Dave

Verfasst: 19.02.2005 19:53
von Blutgerinsel
Toll da meint man es gut und wird böse ?
warum antworte ich überhaupt? ich bin ja das fiese, böse Blutgerinsel

Gewiss ist dir das entgangen
-> http://de.selfhtml.org/javascript/sprac ... enzabfrage

Was da falsch ist bzw. nicht der DOM entspricht.
opener.top.close();
SelfHTML hat geschrieben: Über das Objekt opener können Sie alle Eigenschaften und Methoden des öffnenden Fensters ansprechen
Demnach opener == window und die methode close(); liegt unterhalb von window.

2 Zeilen darunter sogar der Beweis:
SelfHTML hat geschrieben: <a href="javascript:opener.close()">Hauptfenster zumachen</a>

Verfasst: 19.02.2005 20:10
von D@ve
Nein ist es nicht...
Wenn Du fünf stundenöang irgendwelche Dokus gewälzt hättest nur um Dir dann sagen zu lassen, doch bitte um Handbuch nachzuschauen, würdest Du nicht anders reagieren

Ich seh immer noch nicht was daran falsch sein soll??

Wenn nicht...
opener.top.close();
...wie soll ich dann auf den Top des Frames zugreifen? Alles andere funktioniert eben nicht. Ich glaube Du hast da auch was falsch verstanden. Der obige Code FUNKTIONIERT!!!!! Er gibt halt nur eine Fehlermeldung aus, wenn der opener nicht existiert...

Gruß, Dave

Verfasst: 19.02.2005 23:17
von Blutgerinsel
Sorry hab da wohl wirklich was mißverstanden......

Brauch glaube ich eine grafische Darstellung......

Verfasst: 20.02.2005 10:33
von saerdnaer
kann man das script irgendwo in aktion sehen?

ah

Verfasst: 20.02.2005 12:17
von D@ve
Habs anders gelöst... trotzdem vielen Dank...

Sorry @ Blutgerinsel: War gestern ziemlich entnervt. Ich mag Javascript überhaupt nicht, nur komme ich momentan da einfach nicht drumrum (wegen dem Chat-Mod an dem ich gerade arbeite)

In dem Zusammenhang: Kann man beim Internetexplorer irgendwie unterdrücken, dass beim Schließen per JS da noch mal ne Sicherheitsabfrage kommt?

Gruß, Dave

Verfasst: 20.02.2005 12:28
von Dennis63
Diese Sicherheitsfrage kommt normal nur, wenn das Fenster nicht per Java-Script geöffnet wurde.

Grüße
Dennis