Как стать автором
Обновить

Комментарии 46

Вот, вы не первые: unixpapa.com/js/key.html ;-)
Вобщем, если вам нужны модификаторы, то есть event.altKey, event.ctrlKey, event.shiftKey, event.metaKey. А если отдельно именно кнопки, то да, маленько геморроя есть.
«Некроссбраузерный» читать как некро? правила_русского
Винда на виртуалке:
Chromium 3(Stable)
16:1; 116:0;
16:1; 17:1; 116:0;
16:0; 17:1; 116:0;
16:1; 17:1; 116:0;
16:1; 17:0; 116:0;
16:1; 17:0; 18:1; 116:0;
16:0; 17:0; 18:1; 116:0;
16:1; 17:0; 18:1; 116:0;
16:0; 17:1; 18:0; 116:0;
16:0; 17:1; 18:1; 116:0;
16:0; 17:0; 18:1; 116:0;
16:0; 17:1; 18:1; 116:0;

IE
16:1;
16:1; 17:1;
16:0; 17:1;
16:1; 17:1;
16:1; 17:0;
16:1; 17:0; 18:1;
16:1; 17:0; 18:0;
16:0; 17:1; 18:0;
16:0; 17:1; 18:1;
16:0; 17:0; 18:1;
16:0; 17:1; 18:1;
16:0; 17:1; 18:0;
Порядок сочетаний взял из Ваших результатов по Хромиуму
Что, то мне кажется это GTK так капризничает
Игнорируйте слово скринкаст. Написал автоматом. Не скринкаст это конечно же )
ну и не стоит забывать о мегапопулярном ресурсе того же автора quirksmode.org, где он разбирает в том числе и несовместимости клавиатурных событий
А event.which не спасает?
https://developer.mozilla.org/en/DOM/event.which
нет, та же реакция…
Там ещё есть ctrlKey, altKey и специально подумали о маках: metaKey.
К тому же Firefox по-разному реагирует на клавиатурные события в Linux и Windows

Welcome in webdev :)
может дело в xorg?
вы ещё на маке их не пробовали, там тоже повеселитесь; ))
Я обещал, что прийду в следующем посте про баг оперы? Ыххыхыхыхы :)
Брысь под лавку. В Опере все отлично, проблема в линуксе.
Проще всего винить всех остальных: операционную систему, пользователя, девелопера, богов на Олимпе. Но Опера традиционно ни при чем.
Виндовс:
Все браузеры ОК.
Линукс:
Все браузеры глючат.

Виноват Зевс, определенно.
Поясню. Виноваты девелоперы оперы, которые не заметили такой вот баг в линуксе. Но емое, отчего же так мало постов на тему подобных багов в фаерфоксе (про баги в сафари вообще ничего не слышно)?
Дятел, это и есть пост про подобный баг и в фаерфоксе тоже.
Ага, а в последний раз когда такой был? :)
8 дней назад. Я удовлетворил ваше любопытство?
А про оперу два дня назад. Потом еще два дня назад.
Складывается такое впечатление что веб-разработка для вас начинается строкой alert('Hello World') и заканчивается alert('Bye world'), вы абсолютно неадекватно реагируете на баги Оперы, поверьте эти баги не столь критичны что с ними нельзя совладать. Из личного опыта могу сказать что с клавиатурными событиями все браузеры работают абсолютно по-разному, месяца 3 назад писал Input Mask, как там я это понял в полной мере, однако если сразу обратить на это внимание то код при этом удлинится максимум на 10 строчек (если не учитывать код по работе с кареткой в IE и не IE), при этом будут учтены все особенности работы основных браузеров Opera, IE, FF, Chrome/Safari. Так что не надо во всех смертных грехах обвинять оперу, вы просто этим пытаетесь оправдать собственную лень.
Неправильное у вас впечатление.
Поясню. Виноваты девелоперы оперы
Неожиданно, правда? :)
НЛО прилетело и опубликовало эту надпись здесь
Чиатйте quirksmode, и поймете, где вы накосячили.
НЛО прилетело и опубликовало эту надпись здесь
Напписали же — надо смотреть свойства event.ctrlKey и иже с ними, а не keyCode
егоринск, я вижу, что вы очень обознанны в этом деле. Но у меня сейчас уже реализовано с помощью ctrlKey и аналогов, но мне не нравится этот подход. почему — смотрите в исходниках. в топике про это сказано в пункте «3. Самое простое решение....»
Вы не поверите :)

Firefox
shift + ctrl — 16+17
ctrl + shift — 17+16
shift + alt — 16+18
alt + shift — 18+16
ctrl + alt — 17+18
alt + ctrl — 18+17

Chromium (местами ничего не переставлял, именно так и выводится)
shift + ctrl — 16+17
ctrl + shift — 16+17
shift + alt — 16+18
alt + shift — 16+18
ctrl + alt — 17+18
alt + ctrl — 17+18

Opera
shift + ctrl — 16+17
ctrl + shift — 17+16
shift + alt — 16+18
alt + shift — 18 + 16
ctrl + alt — 17+18
alt + ctrl — 18+17

Linux amelin 2.6.31-gentoo-r6
[ebuild R ] x11-base/xorg-server-1.6.5-r1
[ebuild R ] www-client/opera-10.10
[ebuild R ] www-client/chromium-bin-4.0.251.0_p32167
[ebuild R ] www-client/mozilla-firefox-3.5.5
[ebuild R ] kde-base/kdebase-meta-4.3.3
[ebuild R ] x11-drivers/xf86-input-evdev-2.3.1
аналогично

Debian SID
xserver-xorg 1:7.4+4
linux-headers-2.6.30-1-686-bigmem 2.6.30-6
kdebase-workspace 4:4.3.2-2
xserver-xorg-input-evdev 1:2.2.5-1

что-то мне подсказывает, что копать можно в сторону EVDEV, у топикстартера какой драйвер на клавиатуру?
тот, что по-умолчанию в Кубунту 9.10. у меня обычная не хитровыеб не навороченная клавиатура.
если такая проблема только у меня, то это меня, в общем то, радует. но пути решения этой проблемы буду рад узнать.
попробуйте поставить xserver-xorg-input-evdev и в /etc/X11/xorg.conf указать:

ls /dev/input/by-id -l
итого 0

lrwxrwxrwx 1 root root 9 Ноя 28 04:02 usb-Microsoft_Natural__Ergonomic_Keyboard_4000-event-if01 -> ../event2
lrwxrwxrwx 1 root root 9 Ноя 28 04:02 usb-Microsoft_Natural__Ergonomic_Keyboard_4000-event-kbd -> ../event1

Section «InputDevice»
Identifier «Keyboard0»
Driver «evdev»
Option «CoreKeyboard»
Option «Device» "/dev/input/event1"
Option «XkbRules» «xorg»
Option «XkbLayout» «us,ru»
Option «XkbModel» «evdev»
Option «XkbOptions» «grp:alt_shift_toggle,grp_led:scroll»
EndSection


хотя вот сейчас проверил с драйвером kbd, тоже корректно возвращает… хм…
Хм… Это всё:
shock@shock:~$ ls /dev/input/by-id -l
итого 0
lrwxrwxrwx 1 root root 9 2009-11-27 14:47 usb-Genius_Optical_Mouse-event-mouse -> ../event4
lrwxrwxrwx 1 root root 9 2009-11-27 14:47 usb-Genius_Optical_Mouse-mouse -> ../mouse1
shock@shock:~$ sudo apt-get install xserver-xorg-input-evdev
[...]
Уже установлена самая новая версия xserver-xorg-input-evdev.
Section "InputDevice"
    Identifier "Keyboard0"
    Driver "evdev"
    Option "CoreKeyboard"
#   Option "Device" "/dev/input/event1"
    Option "XkbRules"   "xorg"
    Option "XkbLayout"  "us,ru(winkeys),ua(winkeys)"
    Option "XkbModel"   "evdev"
    Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection

Если строку Девайс не закомментировать ­— Иксы отказывались запускаться. Так — ничего не изменилось
хм… какая-то странная ситуация… что за клавиатура? явно не USB предполагаю?

и winkeys давно деприкейтед, уже больше года. Может быть оно влияет? у меня с ним даж не стартуют иксы, попробуй просто ru
хм… какая-то странная ситуация… что за клавиатура? явно не USB предполагаю?

Genius w2036, PC/2, чёрненькая
ааа… чёрненькая! Ну с этого и надо было начинать! Все дело в цвете пластика конечно же!

хз… у тебя по дефолту какой драйвер стоял?
по-дефолту у меня был такой xorg.conf: pastebin.ru/308759
ясно… а попробуй драйвер kbd из пакета xserver-xorg-input-kbd
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории