Autor | Zpráva | ||
---|---|---|---|
Suta Profil |
#1 · Zasláno: 1. 3. 2011, 10:56:52 · Upravil/a: Suta
Událost keypress vrací ve vlastnosti charCode objektu event kód vepsaného znaku. Z něj dokážu odvodit konkrétní znak.
Události keydown / keyup vrací ve vlastnosti keyCode kód stisknuté klávesy. Existuje způsob, jak se 100% jistotou zjistit, jaký znak by stisknutá klávesa při události keydown navázaná na document vepsala, byl-li by kurzor v textovém poli? Uvedu příklad, který řeším. 1. Na obrazovce se objeví slovo. 2. Uprostřed slova chybí jedno písmeno. 3. Uživatel má stisknout klávesu (znak), který ve slovu chybí. 4. Událost document.keydown (či keyup) vrátí kód stisknuté klávesy. 5. V jiném národním prostředí s jinou klávesnicí by však klávesa se stejným kódem většinou vrátila jiný znak, takže tuto metodu nemůžu použít. 6. Lze toto nějakým způsobem obejít? Nebo budu muset zneviditelnit textové pole, kterému nastavím focus a po stisknutí klávesy zjistím přesný znak? |
||
Suta Profil |
#2 · Zasláno: 1. 3. 2011, 13:28:46 · Upravil/a: Suta
Napadlo mě otestovat chování události keypress u objektu document.
Ve všech mnou testovaných prohlížečích - IE (včetně např. IE verze 5.5 - v této verzi jsem testoval jen pro kontrolu), Opera, Firefox, Chrome tato událost funguje bez problémů. Nevím ale, zda-li někde neexistuje nějaká záludnost. Mohl bych tedy toto řešení považovat za funkční napříč prohlížeči? document.onkeypress = function(event) { // IE a Opera používá keyCode, ostatní charCode var charName = String.fromCharCode(event.charCode || event.keyCode); } |
||
Časová prodleva: 13 let
|
0