Wolfgang Wolf wrote:
> Am 20.12.2012 15:35, schrieb Thomas 'PointedEars' Lahn:
>>> folgender Code funktioniert leider nur im IE:
>> Das täuscht. In Wirklichkeit funktioniert er gar nicht.
>
> Natürlich funktioniert er
Du hast die referenzierten Dokumente nicht gelesen, oder?
> in allen von mir getesteten IE-Versionen.
Die da wären?
> Beim IE wird das window.event gefeuert
Du redest wie der Blinde von der Farbe.
> und mit window.event.keyCode kann ich das eingegebene Zeichen ändern.
Nur dass der Tastaturcode recht wenig mit dem eingegebenen Zeichen selbst zu
tun hat und von einer Tastatur zur anderen variieren kann. Deshalb gibt es
die charCode-Eigenschaft; allerdings leider bislang nicht im MSHTML DOM.
Fazit: Dein vermutlich von einer veralteten Müllwebsite (“which”) geklauter
Müllcode (“if (window.event)”) funktioniert in Wirklichkeit nicht.
> Auch der else if Zweig wird von den Browsern ohne window.event
> durchlaufen,
Vielleicht magst Du mal erklären, was “window.event” mit der keyCode-
Eigenschaft zu tun haben soll. Du musst die Eigenschaften testen, die
Du benutzt, nicht völlig andere, Wenn es überhaupt eine Chance haben
soll, zu funktionieren. Ausserdem ist es nötig, die richtigen Events
zu benutzen (keypress für druckbare Zeichen, keydown/keyup für
Steuertasten), was aus Deinem Code ebenfalls nicht hervorgeht.
> allerdings kann ich hier den keyCode nicht ändern.
Siehe oben.
>> Du kannst die Eigenschaften “selectionStart” und “selectionEnd” auf
>> denselben Wert setzen, um die ursprüngliche Cursorposition
>> wiederherzustellen.
>
> Ok, dieses Gefummel werde ich mal testen. Bin allerdings skeptisch, weil
> meine Eingabe alternativ auch per Barcode-Scanner erfolgen kann und das
> wird wahrscheinlich schief gehen. Danke für den Tipp.
Das wird wahrscheinlich funktionieren, denn wie ich bereits schrieb hatte
ich es getestet. Man muss nur verhindern, dass, wenn kein Zeichen
eingegeben wird (also etwa der Cursor mit Pfeiltasten bewegt wird), diese
Funktion etwas tut.
Barcode-Scanner tun so etwas AFAIK allerdings nicht, deren Eingabe ist
äquivalent zu einer fortlaufenden Tastaturbenutzung ohne Sondertasten. Erst
wenn man deren Eingabe nachträglich korrigieren muss, werden Sondertasten
relevant.
>>> bestimmten Sonderzeichen wie dem "µ" greift.
>>
>> In dem Fall würde ich die Eingabe solcher Zeichen von vornherein
>> ausschliessen
>
> Diese Lösung ist lustig!
Nein, normalerweise ist das eher praktisch, sonst hätte ich die Möglichkeit
nicht in JSX eingebaut.
Dort stand übrigens “von vornherein *clientseitig* ausschliessen”. Wenn
Du mich noch einmal sinnentstellend zitierst, war die so fchsal zitierte
Antwort meine letzte auf ein Posting von Dir. You have been warned.
> Klingt genauso wie "Garten betonieren um das Unkraut zu verhindern". Nein,
> die µ müssen schon möglich sein, sonst killen mich meine Kunden aus der
> Elektronik-Branche.
1. Deinen Use-Case kann ich nicht riechen.
2. Deine Kunden stört es, wenn dort lateinische Kleinbuchstaben stehen, die
sie aber eingegeben haben – griechische Kleinbuchstaben stören sie aber
nicht?
Score adjusted
PointedEars
--
Linux is like a *wigwam*: no gates, no windows and an apache inside.