Pull to refresh

Comments 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, где он разбирает в том числе и несовместимости клавиатурных событий
Там ещё есть ctrlKey, altKey и специально подумали о маках: metaKey.
К тому же Firefox по-разному реагирует на клавиатурные события в Linux и Windows

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

Виноват Зевс, определенно.
Поясню. Виноваты девелоперы оперы, которые не заметили такой вот баг в линуксе. Но емое, отчего же так мало постов на тему подобных багов в фаерфоксе (про баги в сафари вообще ничего не слышно)?
Дятел, это и есть пост про подобный баг и в фаерфоксе тоже.
Ага, а в последний раз когда такой был? :)
А про оперу два дня назад. Потом еще два дня назад.
Складывается такое впечатление что веб-разработка для вас начинается строкой alert('Hello World') и заканчивается alert('Bye world'), вы абсолютно неадекватно реагируете на баги Оперы, поверьте эти баги не столь критичны что с ними нельзя совладать. Из личного опыта могу сказать что с клавиатурными событиями все браузеры работают абсолютно по-разному, месяца 3 назад писал Input Mask, как там я это понял в полной мере, однако если сразу обратить на это внимание то код при этом удлинится максимум на 10 строчек (если не учитывать код по работе с кареткой в IE и не IE), при этом будут учтены все особенности работы основных браузеров Opera, IE, FF, Chrome/Safari. Так что не надо во всех смертных грехах обвинять оперу, вы просто этим пытаетесь оправдать собственную лень.
UFO landed and left these words here
UFO landed and left these words here
Напписали же — надо смотреть свойства 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, чёрненькая
ааа… чёрненькая! Ну с этого и надо было начинать! Все дело в цвете пластика конечно же!

хз… у тебя по дефолту какой драйвер стоял?
ясно… а попробуй драйвер kbd из пакета xserver-xorg-input-kbd
Sign up to leave a comment.

Articles