onkeydown при разных раскладках
window.addEventListener('keydown',function(e){aler t(e.keyCode)},false)
например в опере нажимаем «z», если включена русская раскладка то koeyCode будет равно 1071, а при english - 90. можно ли как то идентифицировать клавишу при любых раскладках? если обрабатывать много кнопок то придется делать if(e.keyCode==90 || e.keyCode==1071), ну то есть, есть ли определённое свойство которое не зависит от раскладки, чтобы по нему безошибочно определить какая клавиша была нажата, без лишних движений? |
e.which
<script> window.addEventListener('keydown',function(e){alert(e.which)},false) </script> |
Цитата:
|
Это читали http://learn.javascript.ru/keyboard-events
|
Цитата:
Цитата:
|
Ну мне не проверить, у меня в 12-й всё ок
|
Цитата:
|
<script type="text/javascript"> function LatRus(TxtTrans1,a){TxtTrans1=='lat'? TxtTrans1='rus':TxtTrans1='lat'; lat0='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~[].'.split(''); lat='qwertyuiopasdfghjkl;\'zxcvbnm\,QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>`~'.split(''); lat.push('\\[');lat.push('\\]');lat.push('\\.'); rus=('йцукенгшщзфывапролджэячсмитьбЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёЁхъю').split(''); function transF(p){ar1=lat;ar2=rus;if(TxtTrans1=='lat'){ar2=lat0;ar1=rus}for(var i=0; i<ar1.length; i++){trans='/'+ar1[i]+'/gm';p=p.replace(eval(trans), ar2[i])}return p;} return transF(a)} var a='Z njhjgk.cm e,tuf. yf hf,jne dtxthjv ,ele d bytnt b dc` hfccrf;e gjlhj,ytt\n\ Z тороплюсь e,tuf. на работу dtxthjv буду d bytnt b всё расскажу gjlhj,ytt' alert(LatRus('lat',a)) </script> Функция LatRus('rus',text) - будет преобразовывать в латиницу при любой раскладке (букву или фразу далее через charCodeAt http://javascript.ru/String/charCodeAt |
Deff,
ты немного забыл о том что инет юзают люди не только русские, но и украина например часто посещает русские сайты, да и еще есть некоторые.. поэтому тупой перевод букв на латиницу тут далеко не катит.. А свойство which должно корректно работать, и выдавать нормальный номер клавиши без учета кодировки... об этом четко описано в спецификации: Цитата:
Цитата:
|
devote, неплохо бы ссылочку
|
devote,
Ну не забыл - но да |
Цитата:
|
Ну у меня на w7 всё нормально
Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.289 Version/12.00 |
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 19:01. |