focus setzen
Fritz
- javascript
Hallo,
mit
window.opener.focus();
setze ich den focus ins aufrufende Fenster, nachdem in einem popup eine Aktion ausgeführt wurde.
Warum aber kann ich im aufrufenden Fenster den focus nicht in ein Element meiner Wahl setzen?
Hab es probiert mit
window.opener.document.getElementById('line').focus
oder
window.opener.getElementById('line').focus
Kann mir bitte jemand helfen.
Gruß Fritz
Wenn du keinen anderen Fehler hast, dann musst du einfach statt "focus" einfach "focus()" (mit Klammern) schreiben.
Hallo,
Wenn du keinen anderen Fehler hast, dann musst du einfach statt "focus" einfach "focus()" (mit Klammern) schreiben.
Sorry, da stehen natürlich Klammern. War schlampig kopiert von mir.
Tut aber trotzdem nicht.
Der focus bleibt im popup, kein Fehler in der Konsole
Gruß Fritz
Tut aber trotzdem nicht.
Der focus bleibt im popup, kein Fehler in der Konsole
Das kann nicht sein oder du behälst wichtige Informationen für dich.
Struppi.
Hallo Struppi,
Das kann nicht sein
Hm, mit dieser Aussage bin ich inzwischen _sehr_ vorsichtig.
Spaß beiseite.
Ich konnte mein Problem lösen.
Zuerst habe ich beim Aufruf des popup dafür gesorgt, dass der focus im aufrufenden Fenster dort steht, wo ich ihn auch anschließend haben will.
Dann genügt im popup:
window.opener.focus();
Jedoch - wie nicht anders zu erwarten - _nicht_ im IE
Also wieder mal eine Browserweiche rausgekramt:
if (document.all) { // Sch*** IE
window.opener.document.getElementById('line').focus();
} else {
window.opener.focus();
}
PS: ich bleibe dabei:
der Aufruf mit getElementById tut im Gecko nicht!!
PPS: und der OP (meine Version: 9.1) mag weder die eine noch die andere Version (auch ohne Browserweiche getestet) und behält das popup im focus?
Gruß Fritz
Ich konnte mein Problem lösen.
Zuerst habe ich beim Aufruf des popup dafür gesorgt, dass der focus im aufrufenden Fenster dort steht, wo ich ihn auch anschließend haben will.
Ja, das benötigt zumindest FF so.
Dann genügt im popup:
window.opener.focus();
oder auch nur: opener.focus()
Jedoch - wie nicht anders zu erwarten - _nicht_ im IE
kann ich nciht nachvollziehen, funktioniert tadellos zumindest im IE 7.
http://javascript.jstruebig.de/test/fenster2.html
PS: ich bleibe dabei:
der Aufruf mit getElementById tut im Gecko nicht!!
Wenn du das richitg Element erwischt schon, aber da du vermutlich ein Formularelement haben möchtest, tu es auch document.forms[..].elements[...]
PPS: und der OP (meine Version: 9.1) mag weder die eine noch die andere Version (auch ohne Browserweiche getestet) und behält das popup im focus?
kann ich hier nicht testen.
Struppi.
Hallo Struppi,
dein Beispiel hat mich weitergebracht.
erst den focus zurück ins aufrufende Fenster, und _dann_ den Focus ins gewünschte Element.
Also:
window.opener.focus();
window.opener.document.getElementById('line').focus();
was den Opera betrifft, kann ich mir momentan nur mit einem window.close() behelfen, weil das popup sonst im Vordergrund bleibt.
Gruß Fritz
hi,
was den Opera betrifft, kann ich mir momentan nur mit einem window.close() behelfen, weil das popup sonst im Vordergrund bleibt.
Vielleicht, weil in den Optionen eingestellt ist, dass der Fokus von Fensterobjekten nicht per Javascript geändert werden darf ...
gruß,
wahsaga
dein Beispiel hat mich weitergebracht.
Das war auch der falsche Link :-(
hier der richtige http://javascript.jstruebig.de/test/fenster1.html
funktioniert auch im Opera (9)
Struppi.