Подавление нажатия клавиш для не символьных клавиш? - PullRequest
2 голосов
/ 05 февраля 2011

Есть ли способ предотвратить нажатие клавиши типа F1?

После непродолжительного поиска я нашла этот сайт:

http://www.cambiaresearch.com/c4/789d4357-60e9-4dbd-8e8c-affb2ebd6960/How-Do-I-Suppress-a-Keystroke-in-a-Browser-Input-Box-Using-Javascript.aspx

Таким образом можно подавить нажатия клавиш типа «а» (они не помещаются в текстовое поле), но такие клавиши, как «табуляция», «F1» и т. Д., Все еще работают, то есть фокус меняется и Я использую Google Chrome, веб-сайт справки Chrome всплывает.

Я специально говорю о Google Chrome; решение не должно работать и в других браузерах.

Возможно ли это вообще, и если да, то как?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 05 февраля 2011

keypress не обязательно срабатывает, когда нажатие клавиши не является символом. Таким образом, браузер может не запускать событие на клавишу Backspace, F1 , клавишу "вниз" и т. Д.

Попробуйте отменить события на keydown вместо:

element.addEventListener('keydown', function(e) {
    if (e.which === 112) { // F1 pressed
        e.preventDefault(); // cancel the event
    }
}

Обратите внимание, что это будет работать в Chrome и других совместимых со стандартами браузерах, но не в Internet Explorer <9. </p>

0 голосов
/ 05 февраля 2011

Я очень сомневаюсь, что это возможно.Не только можно будет помешать нормальному поведению программы (скажем, F5 для обновления страницы или ALT + F4 для закрытия браузера), но и вбыстрое тестирование похоже на клавиши типа F1 и т. д. событие не запускается, поэтому вход не может его получить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...