JavaScript keyCode nem ugyan azt az értéket adja vissze Chrome-ban és FF-ban

Sziasztok.

Van nekem egy kis JavaScript kódom ami a vonalkód olvasó által küldött karakter sorozatot próbálná elkapni. Persze, hogy ne legyen egyszerű az élet 0 helyett ö betűket küldözget.
És az a gond hogy a Chrome-ban szépen 192-es kódot kapok vissza FireFoxban meg 0-ás kódot.

FireFox:

DEBUG: which: 0; keyCode: 0, charCode: 0

Chrome

DEBUG: which: 192; keyCode: 192, charCode: 0

Mi lehet itt a gond?

Hozzászólások

Állítsd angolra a billentyűzetet.
Rengeteget szívtunk vele mi is, ez lett a legkönnyebb workaround.

Nézd meg az esemény többi paraméterét.

Firefox ESR-ben úgy látom, hogy van benne még két érdekes tulajdonság. Van a "code", ami "Digit0" (tehát angol kiosztás szerint nézi). És van a "key", ami simán a lenyomott gomb stringként, "ö". Chrome-ban megvannak ugyanezek.

Miért is kéne neked a keyCode? A keyCode az bizony implementáció függő.
És már nem is része a standardnak.
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
"read-only property represents a system and implementation dependent numerical code identifying the unmodified value of the pressed key. "
Hogy miért ne használd: lásd a kiemelést.

Hogy mit használj:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
Ez azt a nyomtatható Unicode karaktert adja vissza, amit lenyomtak (meg a vezérlőkaraktereket is). Nem billentyűkód, hanem karakter.

Régebbi, nem szabványos megoldás:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/charCode