Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Разное поведение браузеров на события клавиатуры (https://javascript.ru/forum/offtopic/30987-raznoe-povedenie-brauzerov-na-sobytiya-klaviatury.html)

nerv_ 22.08.2012 22:01

dmitry111, события клавиатуры

B~Vladi 22.08.2012 22:06

Цитата:

Сообщение от dmitry111
код как код

Выдаёт правильные значения. Скидывай версию сборки браузера, ОС, погоду за окном и свои религиозные предпочтения.

Gozar 22.08.2012 23:03

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>ууу</title>
</head>

<body>
    <script type="text/javascript">
        function xxx(e) {
            alert([e.charCode, e.which]);
        }
        document.addEventListener("keypress", xxx, false);
    </script>
</body>
</html>

dmitry111 22.08.2012 23:29

Цитата:

Сообщение от B~Vladi (Сообщение 199760)
Выдаёт правильные значения. Скидывай версию сборки браузера, ОС, погоду за окном и свои религиозные предпочтения.

Mac os, firefox 14.0.1

Кстати этаже проблема возникает также в самом первом примере тут:

http://learn.javascript.ru/keyboard-...n-%D0%B8-keyup

хотя, там об этом ничего не сказано!

dmitry111 22.08.2012 23:32

Gozar,

ваш код работает. Но речь о keydown и keyCode

dmitry111 22.08.2012 23:54

Думаю проблема в свойстве keyCode.
Если его использовать с событием keydown - выдает - 0 на кириллицу,
если с событием keypress - выдает 0 на кириллицу и латиницу

Gozar 23.08.2012 01:18

Цитата:

Сообщение от dmitry111
Но

Цитата:

Сообщение от dmitry111
проблема

Какая проблема?
Цитата:

Сообщение от dmitry111
код работает

Я думаю, что данная проблема есть только у тебя в голове. Не решаю проблемы, которых нет.

ps: Можешь обращаться ко мне на ты.

ps2: Напиши свой браузер, в котором не будет проблем. ;)

dmitry111 23.08.2012 12:18

Gozar,

мне понравился keyCode своей универсальностью. Все равно какая буква - заглавная, строчная - код один и тотже.
Это же удобно и не заставляет лишний раз напрягать извилины ради пустяковых задач.

А charCode выдает разную цифру.

Из-за проблем в opera keyCode напоминает charCode, а из-за проблем в firefox (14.0.1 под os x) вообще теряет свою актуальность как свойство.

В коде написанном вами у меня не работают клавиши F1, F2, F3....
Так что он тоже не совершенен.


Вывод: чтобы приложение работало везде (при любой раскладке) и при этом не требовало дополнительных "региональных" костылей, безопасными клавишами, независимо от использования свойств charCode, keyCode, являются клавиши 0 - 9 на основной клавиатуре и больше никакие :)

Gozar 23.08.2012 15:19

dmitry111,
Не нужно придумывать проблему там где её нет.

Цитата:

Сообщение от dmitry111
В коде написанном вами у меня не работают клавиши F1, F2, F3....

И это очень хорошо. Руки нужно отрывать людям, которые пытаются на эти клавиши что-то повесить из скрипта страницы.

Цитата:

Сообщение от dmitry111
чтобы приложение работало везде

Это невозможно. Тому кто это не понимает ещё предстоит это понять.

Цитата:

Сообщение от dmitry111
Все равно какая буква - заглавная, строчная - код один и тотже.

दुनिया एक थोड़ा और अधिक से आपको लगता है कि ;)

antonM 23.08.2012 21:55

dmitry111, я тоже при разработке своего плагина столкнулся с этой проблемой (мне нужно было ограничить ввод с клавиатуры). Опера и ФФ под убунтой тоже выдают нули, нормально работает только Хром как в винде так и в убунте. Решил путем переделки условий в коде.


Часовой пояс GMT +3, время: 08:45.