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

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

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

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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>
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Sorry hab da wohl wirklich was mißverstanden......

Brauch glaube ich eine grafische Darstellung......
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

kann man das script irgendwo in aktion sehen?

ah
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Diese Sicherheitsfrage kommt normal nur, wenn das Fenster nicht per Java-Script geöffnet wurde.

Grüße
Dennis
Antworten

Zurück zu „Coding & Technik“