villemflusser
Grünschnabel
Hallo,
ich habe einen iFrame ("box"), von da aus wird ein Popup ("teacherpop") ausgelöst, in dem nochmal ein frameset ("teacher.php" definiert die Frames "teachmenue" und "teachcontent") liegt. In "teachmenue" ist ein Link (inkl. Variablen), der zum einen über die frameset-Datei "teacher.php" das Popup komplett aktualisiert (mit parent.location.href) und der zum anderen auch den Inhalt im iFrame "box" von dem aus das popup ursprünglich ausgelöst wurde aktualisiert (mit top.opener.location.href).
Ich will nun erzwingen, dass das Popup immer im Vordergrund bleibt, auch wenn man in "box" reinklickt oder scrollt oder so. Was ich bisher habe, klappt mit Mozilla/Firefox/Netscape(7) gut, mit Opera 7 gut genug, mit IE6 überhaupt nicht... IE wirft das Popup sofort in den Hintergrund, wenn man in den iFrame klickt.
Ich habe es an diversen Stellen mit einem simplen self.focus(); versucht (in teacher.php, in "teachmenue"), auch kombiniert mit verschiedenen onBlur - Varianten an diversen Stellen - das scheint für Firefox etc. auszureichen, aber eben nicht für IE. Meine nächste Idee war, es mit onClick in "box" zu versuchen, eigentlich das naheliegenste: wenn das passiert, was das Popup in den Hintergrund wirft (klick in box), dann hole "teacherpop" nach vorne.
Das Problem hierbei scheint nun zu sein, dass ja der Inhalt von box aktualisiert wurde und deshalb der Zeiger auf "teacherpop" weg ist. Habe versucht, den Zeiger neu zu setzen (mit erneutem window.open) und dann focus zu setzen, aber es geht einfach nicht (im IE). Wie rufe ich von aktualisiertem "box" aus das popup "reacherpop" auf? Habe in box folgendes stehen:
function blockKlick() {
teacherpop = window.open('','teacherpop','');
box.teacherpop.focus();
}
mit <body onClick ="javascript:blockKlick()">
...und wie gesagt in teacherpop:
function popivorn()
{
self.focus();
window.setTimeout(\"popivorn()\",100);
}
mit <body onLoad="popivorn()>
Habe auch schon mal getestet, statt box.teacherpop.focus(); einfach self.blur() zu machen, aber darauf fährt ausgerechnet der IE dann so richtig scharf ab: er schmeißt "box" dann in den hintersten Hintergrund der zu kriegen ist, und das popup "teacherpop" steht einsam und verlassen vor irgendwelchen anderen Prozessen, die man ja vielleicht auch noch offen hat...
Das ist meine Premiere im Hilfesuchen per Forum, habe Stunden mit diesem Zeug hier (und mit google) verbracht und bin nicht weitergekommen...
ich habe einen iFrame ("box"), von da aus wird ein Popup ("teacherpop") ausgelöst, in dem nochmal ein frameset ("teacher.php" definiert die Frames "teachmenue" und "teachcontent") liegt. In "teachmenue" ist ein Link (inkl. Variablen), der zum einen über die frameset-Datei "teacher.php" das Popup komplett aktualisiert (mit parent.location.href) und der zum anderen auch den Inhalt im iFrame "box" von dem aus das popup ursprünglich ausgelöst wurde aktualisiert (mit top.opener.location.href).
Ich will nun erzwingen, dass das Popup immer im Vordergrund bleibt, auch wenn man in "box" reinklickt oder scrollt oder so. Was ich bisher habe, klappt mit Mozilla/Firefox/Netscape(7) gut, mit Opera 7 gut genug, mit IE6 überhaupt nicht... IE wirft das Popup sofort in den Hintergrund, wenn man in den iFrame klickt.
Ich habe es an diversen Stellen mit einem simplen self.focus(); versucht (in teacher.php, in "teachmenue"), auch kombiniert mit verschiedenen onBlur - Varianten an diversen Stellen - das scheint für Firefox etc. auszureichen, aber eben nicht für IE. Meine nächste Idee war, es mit onClick in "box" zu versuchen, eigentlich das naheliegenste: wenn das passiert, was das Popup in den Hintergrund wirft (klick in box), dann hole "teacherpop" nach vorne.
Das Problem hierbei scheint nun zu sein, dass ja der Inhalt von box aktualisiert wurde und deshalb der Zeiger auf "teacherpop" weg ist. Habe versucht, den Zeiger neu zu setzen (mit erneutem window.open) und dann focus zu setzen, aber es geht einfach nicht (im IE). Wie rufe ich von aktualisiertem "box" aus das popup "reacherpop" auf? Habe in box folgendes stehen:
function blockKlick() {
teacherpop = window.open('','teacherpop','');
box.teacherpop.focus();
}
mit <body onClick ="javascript:blockKlick()">
...und wie gesagt in teacherpop:
function popivorn()
{
self.focus();
window.setTimeout(\"popivorn()\",100);
}
mit <body onLoad="popivorn()>
Habe auch schon mal getestet, statt box.teacherpop.focus(); einfach self.blur() zu machen, aber darauf fährt ausgerechnet der IE dann so richtig scharf ab: er schmeißt "box" dann in den hintersten Hintergrund der zu kriegen ist, und das popup "teacherpop" steht einsam und verlassen vor irgendwelchen anderen Prozessen, die man ja vielleicht auch noch offen hat...
Das ist meine Premiere im Hilfesuchen per Forum, habe Stunden mit diesem Zeug hier (und mit google) verbracht und bin nicht weitergekommen...