Javascript ist Toll!

FAQ > Javascript

12. September 2007 - 12:34

focus() Probleme mit Firefox

Firefox hat seit Urzeiten Probleme mit dem setzten des focus auf ein Textfeld in bestimmten Fällen. Einmal wenn der Fokus unmittelbar nach einem onblur Event gesetzt werden soll oder wenn vor dem Fokus ein alert() Fenster geöffnet wird.

Die Lösung, die in obigen Artikel beschrieben wird, autocomplete zu deaktivieren, funktioniert zumindest in der 2'er Version nicht mehr. Die einzige Lösung scheint zu sein, unmittelbar nach einem blur Event oder alert() Fenster den focus wieder auf ein Feld zu setzen, ist ein Timeout abzuwarten. Dazu reicht ein Timeout von einer Millisekunde.

Beispiel

javascript
function setFocus(el) {
    var self = el;
    if(el.value) return;
    alert('Kein Text!');
    window.setTimeout( function() { self.focus();}, 1);
}

mit Timeout
ohne Timeout

Beschreibung

Beim verlassen der Felder wird geprüft ob ein Text eingeben wurde. Ist es leer, erscheint eine Meldung. Nach dem wegklicken des Meldungsfensters soll das Eingabefeld den Fokus erhalten. Im ersten Fall nach einem kurzen Timeout, im zweiten ohne

Comments (6)
3859 mal gelesen.

6 Kommentare Einen Kommentar hinterlassen »

Pingbacks

1. Pingback Freitag 3.Juli 2009:12:01
Mikrowelle » Der beste, sicherste, schoenste, schnellste, geilste und laengste Browser der Welt [Teil 13256931569]
Text:

[...] nur zu weiterer Frustration, hat mich aber dem Ziel nicht naehergebracht. Schlussendlich lag die Loesung in einer Aenderung der Syntax und expliziter Deklaration von focus() als Funktion (oder wie immer [...]

Kommentare

1. Kommentar von Micha
Freitag 1.Februar 2008: 7:40

Hi,

wo ich schon mal hier bin, wenn ich im Opera in die Textfelder nach einander klicke, dann kommt die ALERT-Box. Nur, sowie ich sie weg klicke, erscheint sie sofort wieder - endloser Aufruf. Es half nur noch Alt+Strg+Entf...

Das willst Du anderen Usern doch sicher nicht auch zu muten, oder ;-)

Schöne Grüße
Micha

2. Kommentar von Struppi
Freitag 1.Februar 2008: 9:20

du musst einfach nur etwas in das Feld eingeben.

3. Kommentar von Micha
Freitag 1.Februar 2008: 13:58

Hi,

nein, wir mißverstehen uns gerade. Ich bekomme keine Gelegenheit, noch etwas einzugeben, weil sich permanent ein ALERT-Fenster öffnet. Der Effekt sieht in Opera so aus, wie bei folgendem Code:

while(true) alert("Kein Text!");

Man kann den Browser nur noch "hart" beenden. Wie gesagt: Ich klicke ins erste Feld und dann gleich ins zweite - nirgend gebe ich was ein.

Besser Beschrieben?

Gruß Micha

4. Kommentar von Struppi
Freitag 1.Februar 2008: 17:21

Ja, ok (du hast übrigens einen Fehler in meiner Wordpress installation entdeckt, danke)

Ich versuch das Problem zu lösen.

5. Kommentar von Micha
Samstag 2.Februar 2008: 16:02

Hallo Strupi,

habe ich bemerkt. Mein Eintrag wurde nicht angezeigt ;-)

Schöne Grüße
Micha

Einen Kommentar hinterlassen

Name (erforderlich)
Mail (wird nicht angezeigt) (erforderlich)
Website

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful Browser-Statistiken