Dynamische Pop-Up Größenänderung1
Tom
- javascript
hallo!
ich habe ein verzwicktes problem: auf einer seite wird ein popup-fenster (auf wunsch; also keine werbung :-) aufgerufen. in dieses popup wird dann ein kleines frameset geladen (horizontal).
soweit kein problem.
weiterhin gibt es in diesem popup im unteren frame einen link, der beim anklicken das popup selbst vegrößert (= höher macht, um zusätzliche informationen anzuzeigen bzw. ein formular unterzubringen).
lassen wir netscape 4.x mal bitte außen vor.
diese dynamische popup-vergrößerung funktioniert auch einwandfrei. der code zum vergrößern steht dabei aber nicht im unteren frame, sondern im head der frameset-datei als javascript und wir nur vom unteren frame via parent.CODEZUMVERGROESSERN(); aufgerufen.
das ist aber auch nicht das problem (mal von netscape abgesehen, aber dafür hab ich eine alternativlösung ohne dynamisches vergrößern).
jetzt kommt aber das problem:
in dem nun vergößerten popup kommt im unteren frame ein formular, daß die daten an ein externes CGI sendet. die kommen auch in der DB an. problemlos. wenn die daten im CGI angekommen sind, schickt dieses nun eine "danke"-seite zurück. das funktioniert auch einwandfrei.
aber: in der "danke"-seite ist nun auch ein aufruf zu dem javascript in der oben angesprochenen frameset datei - genauer gesagt zur umkehrfunktion, die das frameset wieder verkleinern soll (auf die ursprüngliche größe).
diese (oder sonst eine funktion) wird aber nie aufgerufen. ich schätze mal, daß es daran liegt, daß die "danke"-seite vom externen CGI aufgerufen wird und irgendwie das eigene frameset nicht mehr erkennt/erkennen will. DENN: wenn ich testweise eine lokale "danke"-seite aufrufe (also nicht über den externen link gehe) verkleinert sich das fenster problemlos.
ich weiß - das ist ein SEHR verzwicktes problem, aber ich hoffe, daß es irgendjemanden da draußen gibt, der vielleicht mal was ähnliches hatte und es irgendwie lösen konnte.
GANZ WICHTIG: es funktioniert seltsamerweise bei einigen usern!!!
primär bei Win9x/2000 mit IE 5/6. bei anderen mit fast gleicher config gehts' wieder nicht. ich hatte auch schon den gedanken, daß es vielleicht an sicherheitseinstellungen liegen könnte.
kennt jemand vielleicht eine ganz andere lösung für dieses problem?
vielen vielen dank!!!
gruß
tom
Moin Moin !
Das sieht nach Cross-Server-Cross-Frame-Blockade aus. Irgendwann ist jemand auf die Idee gekommen, mit einem Frameset und Javascript böse Sachen mit anderen Webseiten zu machen. Daraufhin haben die Browser-Hersteller einen Mechanismus eingebaut, der Javascript mit Framesets nur für Frames vom selben Server erlaubt. Sieh' mal in der Javascript-Objekt-Referenz nach, das ist eine Methode oder ein Attribut des Fensters oder des Frames.
Tux2000
hallo!
ich habe ein verzwicktes problem: auf einer seite wird ein popup-fenster (auf wunsch; also keine werbung :-) aufgerufen. in dieses popup wird dann ein kleines frameset geladen (horizontal).
soweit kein problem.
weiterhin gibt es in diesem popup im unteren frame einen link, der beim anklicken das popup selbst vegrößert (= höher macht, um zusätzliche informationen anzuzeigen bzw. ein formular unterzubringen).
lassen wir netscape 4.x mal bitte außen vor.
diese dynamische popup-vergrößerung funktioniert auch einwandfrei. der code zum vergrößern steht dabei aber nicht im unteren frame, sondern im head der frameset-datei als javascript und wir nur vom unteren frame via parent.CODEZUMVERGROESSERN(); aufgerufen.
das ist aber auch nicht das problem (mal von netscape abgesehen, aber dafür hab ich eine alternativlösung ohne dynamisches vergrößern).
jetzt kommt aber das problem:
in dem nun vergößerten popup kommt im unteren frame ein formular, daß die daten an ein externes CGI sendet. die kommen auch in der DB an. problemlos. wenn die daten im CGI angekommen sind, schickt dieses nun eine "danke"-seite zurück. das funktioniert auch einwandfrei.
aber: in der "danke"-seite ist nun auch ein aufruf zu dem javascript in der oben angesprochenen frameset datei - genauer gesagt zur umkehrfunktion, die das frameset wieder verkleinern soll (auf die ursprüngliche größe).
diese (oder sonst eine funktion) wird aber nie aufgerufen. ich schätze mal, daß es daran liegt, daß die "danke"-seite vom externen CGI aufgerufen wird und irgendwie das eigene frameset nicht mehr erkennt/erkennen will. DENN: wenn ich testweise eine lokale "danke"-seite aufrufe (also nicht über den externen link gehe) verkleinert sich das fenster problemlos.
ich weiß - das ist ein SEHR verzwicktes problem, aber ich hoffe, daß es irgendjemanden da draußen gibt, der vielleicht mal was ähnliches hatte und es irgendwie lösen konnte.
GANZ WICHTIG: es funktioniert seltsamerweise bei einigen usern!!!
primär bei Win9x/2000 mit IE 5/6. bei anderen mit fast gleicher config gehts' wieder nicht. ich hatte auch schon den gedanken, daß es vielleicht an sicherheitseinstellungen liegen könnte.
kennt jemand vielleicht eine ganz andere lösung für dieses problem?
vielen vielen dank!!!
gruß
tom
hi!
Das sieht nach Cross-Server-Cross-Frame-Blockade aus. Irgendwann ist jemand auf die Idee gekommen, mit einem Frameset und Javascript böse Sachen mit anderen Webseiten zu machen. Daraufhin haben die Browser-Hersteller einen Mechanismus eingebaut, der Javascript mit Framesets nur für Frames vom selben Server erlaubt. Sieh' mal in der Javascript-Objekt-Referenz nach, das ist eine Methode oder ein Attribut des Fensters oder des Frames.
genau das befürchte ich auch. scheint ein sicherheitsproblem zu sein, daß sich bei einigen usern zeigt - bei anderen nicht (richtet sich wohl nach der "anzahl der windows-servicepacks", die man installiert hat ;-)
der code ist zwar recht trickreich/verzwickt, aber logisch und fehlerfrei (behaupte ich mal :-)
ich denke, daß ich eine komplett andere alternative zu dem ganzen finden muß, da es kein haltbarer zustand ist, wenn man nicht weiß, ob es bei den meisten usern läuft oder nicht :-(
ich schau noch mal bei microsoft im developer network nach - denke aber, daß das (auch von dir) vermutete der grund ist.
danke nochmal
gruß
tom
hallo!
ich habe ein verzwicktes problem: auf einer seite wird ein popup-fenster (auf wunsch; also keine werbung :-) aufgerufen. in dieses popup wird dann ein kleines frameset geladen (horizontal).
soweit kein problem.
weiterhin gibt es in diesem popup im unteren frame einen link, der beim anklicken das popup selbst vegrößert (= höher macht, um zusätzliche informationen anzuzeigen bzw. ein formular unterzubringen).
lassen wir netscape 4.x mal bitte außen vor.
Warum ?
resizeTo(x,y) kann NC 4.x ohne Probleme, oder machst du es etwas anders ?
Du solltest vielleicht beim im onsubmit Handler des Fomulars die Größe wieder zurüchstellen.
Struppi.