Fabian Transchel: .focus() in Opera

Beitrag lesen

Hallo, Fabian,

var obj = document.getElementByID("eingabe");
obj.focus();

Es ist für den Benutzer meist höchst verwirrend, wenn du ihm seinen Focus entreißt.

obj.value = obj.value;

Würdest du mir den Sinn dieser Zeile erklären?

Das funktioniert zumindest im IE, im Mozilla und im Netscape. Allderdings ist der Zeichencursor in Opera immer am Anfang des Textfeldes.  Beispiel:

Ich gebe ein: "1" und "2" und "3"
Im Opera steht dann im Textfeld: "1" und "21" und "321"

Überlege, warum.

Bei einem onKeyUp wird ein Script ausgeführt das ein paar Sachen in der Seite ändert und am Ende wieder in das Textfeld zurückspringen soll.

Das wirst du mit Opera nicht ohne Probleme realisieren können, da Opera sich meines Wissens (im Gegensatz zu den anderen genannten Useragenten) korrekt bei .focus() verhält.

Weiß da vlt jemand eine Lösung für?

if(navigator.userAgent.search("Opera") != -1){
  obj.value = obj.value.substr(1, obj.value.length - 1) + obj.value.substr(0,1);
}

Diese Browserweiche ist sinnfrei. Opera wird sich _extrem selten_ als Opera ausgeben.

Grüße aus Barsinghausen,
Fabian