streß mit Fenstern, die modal sein sollen!
Lise
- javascript
0 Christoph0 Lise0 Daniela Koller0 Lise
Liebes Forum,
ich hab im Selfhtml eine Möglichkeit gefunden Fenster 'modal' zumachen, indem ich dem Fenster mit einem timeout ständig den Focus gebe. Ich clear den Timeout, wenn FEnster geschlossen wird.(im IE 5.5)
Das Problem ist nur,wenn ich in dem neuen Fenster ein Formular hab. Ich kann dort nix eingeben, da der focus ja nun mal auf dem Fenster liegt. Denk ich mir so.
Ist der Focus für ein Fenster wirklich der selbe wie für die Formularfelder?
Hab versucht bei onKeyDown auf ein inputfeld den timer zu stoppen, und dem inputfeld den Focus zu geben,aber das klappt auch nicht?
Hat jemand vielleicht eine Idee dazu?
Interessanterweise, kann der Mozilla mit der Situation umgehen, dort kann ich trotz des timers der läuft was ins Formular eingeben!
Schon mal danke ! ICh hoffe ich hab mich klar ausgedrückt mit meinem Problem
Lise
Liebes Forum,
Liebe Lise
Schon mal danke ! ICh hoffe ich hab mich klar ausgedrückt mit meinem Problem
sorry nein, ich hab rein garnix verstanden was du willst! Bitte mal anhand von Quelltext erörtern, oder bin ich noch zu müde um was zu kapieren? Naja bin mal gespannt.
Lise
Gruß Christoph
sorry nein, ich hab rein garnix verstanden was du willst! Bitte mal anhand von Quelltext erörtern, oder bin ich noch zu müde um was zu kapieren? Naja bin mal gespannt.
Hi Christoph!
O.K. Noch ein Versuch:
Hier der Code um ein Fenster zu öffnen, was immer den Focus behält:
function openWindow(page, width, height, top, left){
neuActivity = window.open(page,"Fenster1","width="+width+",height="+height+",left="+left+",top="+top+", depend=yes,scrollbars=yes");
neuActivity.focus();
immervorn();
}
//mit Errorhandling für IE-Browser 5.0
fensterIstZu = false;
function immervorn(windowName){
//alert(windowName)
if (neuActivity.closed == true){
fensterIstZu = true;
}
if (fensterIstZu == false){
neuActivity.focus();
aktiveActivity = window.setTimeout("immervorn()",10);
}
if (fensterIstZu == true){
window.clearTimeout(aktiveActivity);
neuActivity ='zu';
document.getElementById('error').style.visibility="hidden";
fensterIstZu = false;
}
}
Im geöffneten Fenster ist ein Formular,in das ich aber im IE keine EIngaben machen kann, da der Focus ständig auf das Fenster gesetzt wird?
Ich will aber natürlcih was in das Formular eingeben, und will verhindern das jemand in das Hauptfenster kommt ohne das Form abzuschicken oder zu canceln.
Ich würde gerne wissen ob das überhaupt möglich ist, wenn der Focus ständig gesetzt wird?
Oder ob es andere Möglichkeiten gibt Fenster 'modal' sprich im Vordergrund zu halten gibt.
Ich hoffe es ist klarer, ist ja nicht so einfach die Dinge klar zu fassen, wenn man so drin steckt.
Lise
Hi Lise
Im geöffneten Fenster ist ein Formular,in das ich aber im IE keine EIngaben machen kann, da der Focus ständig auf das Fenster gesetzt wird?
Ich will aber natürlcih was in das Formular eingeben, und will verhindern das jemand in das Hauptfenster kommt ohne das Form abzuschicken oder zu canceln.
Ich würde gerne wissen ob das überhaupt möglich ist, wenn der Focus ständig gesetzt wird?
Oder ob es andere Möglichkeiten gibt Fenster 'modal' sprich im Vordergrund zu halten gibt.
Warum löst du es mit einem Timeout und nicht dem Handler onBlur?
http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onblur
Ist nach Standard allerdings nicht erlaubt im Body, soll aber laut
dem Link da funktionieren.
Damit setzt du denk Fokus immer nur dann wieder, wenn es den Fokus verliert.
Du weist allerdings, das man einigen Browser sowas verbieten kann und ich
zb das auch tue (und damit bei weitem nicht die einzige bin).
Gruss Daniela
Hi Daniela,
Ich habs jetzt im geöffneten Fenster versucht im Body mit onBlur="self.focus();", dann hab ich ber wieder das Problem nix in das Formular eingeben zu können.
Wie doof?
Aber danke für den Tipp
Lise