Popups: das ursprüngliche Fenster soll sich schliessen... ?
-
Hi!
Vielleicht kann mir hier jemand helfen. Ich hab folgendes Problem:Wenn der Benutzer auf meine Seite kommt, soll sich die Seite in einem Popup nochmal selber öffnen, und das ursprüngliche Fenster soll geschlossen werden.
Hintergrund: der Benutzer soll in dem Fenster, in dem er anschließend "arbeitet" (das Fenster ist das Interface zu einer PHP-Anwendung) keine Address-, Status-, Toolbox- oder sonstige Leiste haben.
Mein Chef hat mir dazu folgende Lösung vorgeschlagen, die beim ersten Aufruf den HTML-Header der Seite kommt:
<script type=\"text/javascript\"> <!-- top = window.open(window.location.href, "_Top", "height=400,width=600,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no"); popup = window.open(window.location.href, "popup", "height=400,width=600,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no"); top.close(); // --> </script>
ich weiss zwar nicht warum, aber das funktioniert.
Allerdings nur auf meinem Testrechner. Auf dem Webserver, auf dem das Programm dann laufen soll, funktioniert das nicht (der Browser schliesst sich, ohne ein Popup zu erzeugen)...
Soweit ich das verstanden hab, wird hat Fenster, das ich mit dem ersten window.open() erzeuge, einen Sonderstatus aufgrund des Namens, den ich ihm geben (_Top). Denn es "ersetzt" das aktuelle Fenster, anstatt als Popup zu erscheinen. Dann wird ein zweites, das "echte" Popup-Fenster erzeugt, und dann das "_Top"-Fenster geschlossen. So jedenfalls hab ich das interpretiert. Hab ich das soweit richtig verstanden? Wenn ja: warum funktionierts dann nur "unzuverlässig"?
Kennt jemand eine Loesung zu dem Problem?
BTW: Testplattform ist Firefox 1.0
-
Blue-Tiger schrieb:
ich weiss zwar nicht warum, aber das funktioniert.
Allerdings nur auf meinem Testrechner. Auf dem Webserver, auf dem das Programm dann laufen soll, funktioniert das nicht (der Browser schliesst sich, ohne ein Popup zu erzeugen)...
Das ist wirklich seltsam, denn eigentlich hat JavaScript nicht wirklich etwas mit dem Server zu tun - könnte nur daran liegen, dass der Browser für lokale Seitenaufrufe weniger strikte Sicherheitseinstellungen verwendet.
-
Was Du machen kannst, ist das Fenster ganz langweilig per window.open(...) oeffnen, dann aus dem neuen Fenster heraus das alte schliessen. Das geht mit dem JS-Objekt opener. SelfHTML hilft weiter.
Was passieren kann, ist dass der Browser meckert von wegen das erste Fenster soll geschlossen werden, wollen sie das zulassen. Das ist mE nicht zu umgehen...
-
fantast schrieb:
Was Du machen kannst, ist das Fenster ganz langweilig per window.open(...) oeffnen, dann aus dem neuen Fenster heraus das alte schliessen. Das geht mit dem JS-Objekt opener. SelfHTML hilft weiter.
Was passieren kann, ist dass der Browser meckert von wegen das erste Fenster soll geschlossen werden, wollen sie das zulassen. Das ist mE nicht zu umgehen...
an sowas hab ich schon gedacht, aber... naja, der Firefox meckert nicht nur, sondern weigert sich einfach, das Hauptfenster zu schliessen, aufgrund der JS-Einstellungen nehm ich an. Und nur wegen einer kleinen Anwendung bei jedem User rumgehen und die Sicherheitseinstellungen am Firefox umbiegen ist leider zu aufwaendig.
flenders schrieb:
Das ist wirklich seltsam, denn eigentlich hat JavaScript nicht wirklich etwas mit dem Server zu tun - könnte nur daran liegen, dass der Browser für lokale Seitenaufrufe weniger strikte Sicherheitseinstellungen verwendet.
Ich und mein Chef waren aehnlich perplex. Das komische ist: ruft man die Page von meinem Testrechner aus auf (egal ob lokal oder von einem anderen PC aus), dann funktinionierts. Macht man das Selbe von dem Server aus, von dem aus das Programm spaeter laufen soll, klappts nicht
(kann evtl. sein dass auf dem Server eine andere Vesion vom Programm installiert ist, ich werd das heut nochmal ueberpruefen... aber am JS-Code wurde eigentlich nichts veraendert
)