focus() Probleme mit Firefox
Firefox hat seit Urzeiten Probleme damit in bestimmten Fällen den Fokus auf ein Textfeld zu setzen. Einmal, wenn der Fokus unmittelbar nach einem onblur Event gesetzt werden soll und wenn vor dem Fokus ein alert() Fenster geöffnet wird.
Die Lösung, die in obigen Artikel beschrieben wird, autocomplete deaktivieren, funktioniert zumindest in der 2'er Version nicht mehr. Die einzige Lösung scheint ein Timeout zu sein, der unmittelbat nach dem alert() oder dem Blur Event aufgerufen wird. Dazu reicht ein Timeout von einer Millisekunde.
Beispiel
function setFocus(el) { var self = el; if(el.value) return; alert('Kein Text!'); window.setTimeout( function() { self.focus();}, 1); } |
Beschreibung
Beim verlassen der Felder wird geprüft ob ein Text eingeben wurde. Ist das Feld leer, erscheint eine Meldung. Nach dem wegklicken des Meldungsfensters soll das entsprechende Eingabefeld den Fokus erhalten. Im ersten Fall nach einem kurzen Timeout im zweiten ohne
ähnliche Artikel
- 6. November 2010 -- Mach deine Fehlerkonsole sauber! (8)
Alle, die sich mit Javascript beschäftigten, kennen...
- 27. Januar 2010 -- Die 4 fiesesten Javascript IE Probleme (9)
Ich frag mich warum ich diesen Artikel nicht schon...
- 24. März 2009 -- Firefox overflow:auto Bug (0)
Firefox 3.x (und soweit ich das rausbekommen habe auch...
4069 mal gelesen.
6 Kommentare
Leave a comment »
Seiten:
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
1. Februar 2008: 9:20
du musst einfach nur etwas in das Feld eingeben.
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
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.
2. Februar 2008: 16:02
Hallo Strupi,
habe ich bemerkt. Mein Eintrag wurde nicht angezeigt ;-)
Schöne Grüße
Micha
3. Juli 2009: 12:01
[…] 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 […]
Das Neuste
Kategorien
am meisten gelesen
zuletzt kommentiert
Archiv
Wortwolke
Privatsphäre überwachung Animation prototype Datenschutz Firefox Browser Drag&Drop String LED OOP Bugs Javascript google linux Laufschrift about:config Wordpress LED Scroller Tool