Как зарегистрировать событие document.onkeypress
Я хочу зарегистрировать события нажатия клавиш для документа с помощью javascript.
Я использовал:
document.attachEvent("onkeydown", my_onkeydown_handler);
Он отлично работает с IE,
но не с Firefox и Chrome.
Я также пробовал:
document.addEventListener("onkeydown", my_onkeydown_handler, true);
// (with false value also)
Но он все еще не работает с Firefox и Chrome.
Есть ли решение, я что-то упустил?
Ответы
Ответ 1
Вы ищете:
EDIT:
JavaScript:
document.addEventListener("keydown", keyDownTextField, false);
function keyDownTextField(e) {
var keyCode = e.keyCode;
if(keyCode==13) {
alert("You hit the enter key.");
} else {
alert("Oh no you didn't.");
}
}
DEMO: JSFIDDLE
Ответ 2
Возможно, вы ищете:
document.body.addEventListener('keydown', function (e) {
alert('hello world');
});
Но почти наверняка стоит потратить ваше время на использование существующей библиотеки, чтобы абстрагироваться от проблем многих браузеров.
Ответ 3
Имя события для addEventListener()
равно keydown
, а не onkeydown
.
Кроме того, вы должны прикрепить обработчик события к элементу триггера, а не к document
.
Ответ 4
Прочтите следующие ссылки для подробного описания.
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener?redirectlocale=en-US&redirectslug=DOM%3Aelement.addEventListener
http://www.reloco.com.ar/mozilla/compat.html
Короче говоря, обработчик записи
function myFunction(e)
{
///For IE
if(!e)
e=window.event;
// use e as event in rest of code.
}