Erzeugtes Popupfenster wieder schliessen

webdoktor

Angesehenes Mitglied
Hallo zusammen

Ich habe eine Seite wo ich ein Formular drauf habe. Wenn ich dort auf den Submit Knopf klicke
öffne ich zusätzlich ein Popup:

<input name="Submit" type="submit" class="button_blau" value="Bestätigen" onClick="oeffnen('')"/>

Das neue Popup öffnet sich. Das funktioniert ohne Problem. Nun möchte ich das neue Popup von der
Seite wieder schliessen wo ich es geöffnet habe jedoch funktioniert das nicht. Habe zwei Funktionen:

CODE <script type="text/javascript">
<!--


function oeffnen()
{

neuesfenster = window.open('foto_upload.php','neuesfenster', 'toolbar=no,location=no,directories=yes, status=no,menubar=no, scrollbars=no,resizable=no, width=500,height=200');

}


function schliessen()
{


neuesfenster.close();

}


-->
</script>


Wenn ich es schliessen will komme ich den Fehler: "neues Object ist undefined".
Wer kann mir helfen?

Grüsse Marco
 
Erstens: Fenster schliessen müsste aber auf jeden Fall in den neueren Browsern Warnungen erzeugen ("Diese Anwendung versucht ein Fenster zu schliessen" oder ähnlich). So richtig "toll" empfinde ich das nicht.

Zweitens:
Ich denke, dass ein neues Fenster halt aus dem neuen Fenster heraus geschlossen werden muss (Browser Sicherheitsbarrieren?).

Eventuell wäre es sinnvoller, statt ein neues Fenster zu nutzen, vielleicht eher ein stinknormales div einzusetzen... Ich mein, das lässt sich problemlos mittels JS und CSS von sichtbar auf unsichtbar stellen. Wenn Du mit einem div ein "Pop Up" simulierst, dann hast Du auch keinerlei Probleme mit Pop-Up-Blockern.

Aber wart mal noch ein paar weitere Meinungen ab...
 
Da

QUOTE (webdoktor @ Mi 7.07.2010, 14:35)Wenn ich es schliessen will komme ich den Fehler: "neues Object ist undefined".


steht doch schon die Lösung. Das Objekt ist nicht definiert, warum sollte es auch definiert sein.




QUOTE (Peter Schneider @ Mi 7.07.2010, 18:26)Erstens: Fenster schliessen müsste aber auf jeden Fall in den neueren Browsern Warnungen erzeugen ("Diese Anwendung versucht ein Fenster zu schliessen" oder ähnlich). So richtig "toll" empfinde ich das nicht.

Zweitens:
Ich denke, dass ein neues Fenster halt aus dem neuen Fenster heraus geschlossen werden muss (Browser Sicherheitsbarrieren?).


Nö, das erste ist falsch, das läßt sich ohne Warnung schließen. Dazu muß lediglich die Variable gesetzt sein, was sie ja laut Fehlermeldung nicht ist
tongue.gif


Das zweite ist auch falsch.

Wenn eine Seite eine neue Seite öffnet, dann ist die neue Seite die abhängige Seite - und kann damit auch geschlossen werden. Das geht sogar, wenn die Seite im neuen Fenster auf einer anderen Domain liegt. Zumindest mein aktueller FireFox meckerte grade nicht.
 
Hallo Jürg & Peter

Danke für Eure Antworten.

@Jürg:
Ja genau es ist nicht definiert. Leider bin ich nicht so gut in JS aber ich denke, es ist nicht definiert
weil es in einer funktion ist welche ja nicht aufgerufen wird zu dieser Zeit. Leider weiss ich nicht wie ich es
trotzdem definieren kann das ich das Fenster wieder schliessen kann.

@Peter:
Mit einem DIV wollte ich es auch lösen aber es ist so, wenn ich das DIV einblende wird die Anmiation
nicht abgespielt also das loding.gif steht einfach still. Sehr komisch, haben viele dieses Problem aber eine
Lösung habe ich dort nicht gefunden.

Eigentlich will ich nur, dass wenn man ein Bild hochläd bei der Wartezeit ein Lodingbalken angezeigt wird.
Bis jetzt habe ich es noch nicht wirklich geschafft und das nach 2 Tage üben :-(

Freue mich auf eure Antworten.
Marco
 
QUOTE
Nö, das erste ist falsch, das läßt sich ohne Warnung schließen. Dazu muß lediglich die Variable gesetzt sein, was sie ja laut Fehlermeldung nicht ist tongue.gif

Das zweite ist auch falsch.


Das meinte ich mit "lieber auf weitere Meinungen warten".
LOL...

Ich werde meine Hinweise zu JS künftig im Konjunktiv formulieren.

Das mit dem "Warnhinweis": muss mal selbst schauen, aber zumindest das Hauptfenster sollte so reagieren...
 
QUOTE (webdoktor @ Mi 7.07.2010, 20:43)es ist nicht definiert weil es in einer funktion ist welche ja nicht aufgerufen wird zu dieser Zeit.


Und was macht man dann stattdessen? In jeder Programmiersprache gibt es dieses Thema, mit JavaScript hat das nichts zu tun.

Das ist eines der elementarsten Programmierer-Basics.

Noch dazu eines, das in PHP schnell zu Sicherheitslücken führen kann.
 
Lieber Jürg

Wenn ich es wüsste würde ich nicht hier im Forum von Ayom Fragen.
Ich muss es irgendwie definieren aber schaffe es leider nicht.

LG Marco
 
Zurück
Oben