Перехват событий нажатия клавиш PageUp / PageDown в браузере Chrome - PullRequest
2 голосов
/ 30 декабря 2011

У меня есть несколько элементов ввода, которые пользователи запрашивают специальное поведение для ключей pageup / pagedown, чтобы изменить значение в элементе ввода. Пользователи не хотят иметь область прокрутки, в которой они редактируют, а также выполнять прокрутку вверх / вниз страницы. У меня это работает правильно в FF и IE8.

Однако в Chrome я не могу найти способ запретить самому браузеру использовать эти события клавиатуры для прокрутки региона. Прежде чем кто-либо предложит это, вызов e.stopPropagation() или e.immediateStopPropagation() не решит проблему в Chrome. Он отлично работает в FF и IE8.

Кроме того, поведение страницы вверх / вниз может быть изменено только для этих специальных полей ввода. Для всех остальных страница вверх / вниз должна работать нормально.

Вы можете увидеть рабочую демонстрацию на http://jsfiddle.net/photo_tom/CN4UZ/.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2011

Я использовал e.preventDefault(). Работает в Chrome 16.

http://jsfiddle.net/CN4UZ/5/

0 голосов
/ 30 декабря 2011

Прекрасно работает в Chrome для меня.

Google Chrome   17.0.963.12 (Official Build 114667) dev-m
OS  Windows
WebKit  535.11 (@102901)
JavaScript  V8 3.7.12.6
Flash   11,1,102,55
User Agent  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11
Command Line    "C:\Users\..\AppData\Local\Google\Chrome\Application\chrome.exe" --no-startup-window --flag-switches-begin --enable-print-preview --flag-switches-end
Executable Path C:\Users\..\AppData\Local\Google\Chrome\Application\chrome.exe
Profile Path    C:\Users\..\AppData\Local\Google\Chrome\User Data\Default

Если у вас нет моей сборки:

Попробуйте использовать return false: http://jsfiddle.net/maniator/CN4UZ/4/

...