2013-03-23 3 views
0

я собирался реализовать ответ на ключи, поэтому я начал с:Некоторые предупреждения из Javascript автоматически закрываются?

window.addEventListener('keydown', function(e) { 
    alert(e.keyCode) 
}, true) 

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

Однако я нашел интересное поведение. Это делает странные вещи, когда я использую клавишу пробела.

Когда я нажимаю клавишу пробела, появляется предупреждение с номером «32» (код ключа пробела). Однако, когда я отпускаю ключ, предупреждение автоматически закрывается!

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

Почему это?

+4

Это потому, что клавиша пробела является одной из клавиш, которая «нажимает» кнопку «ОК» на оповещении, закрывая ее. –

+0

@JonathanM Но так «Enter» или «Return», и он не закрывает его, когда я его нажимаю. – 0x499602D2

+0

Какой браузер вы используете? Я не могу воспроизвести в FF17. –

ответ

1

Поскольку пробел используется браузером для закрытия предупреждающих сообщений (например, введите).

пояснение: Интересное поведение заключается в том, что браузер использует клавиатуру пробела для закрытия предупреждений, так что вы увидите только диалог между вашим keydown/keyup (в случае примера, когда пробел не повторяется)

+0

О, это интересно. Благодаря! (может принимать через 12 минут) – Doorknob

0

Вы вызываете предупреждение при нажатии клавиши, что означает событие keyup, которое, вероятно, прослушивает кнопка оповещения, происходит, когда предупреждение уже существует, и эффективно удаляет предупреждение немедленно.

Если вы активируете оповещение на клавиатуре вместо этого, это не проблема.

Смежные вопросы