Во-первых, следующий полезный ресурс: http://unixpapa.com/js/key.html
Во-вторых, вы должны знать, что есть разница между нажатием клавиши (или клавишей) и нажатием клавиши.нажатие клавиш, как правило, не допускает использование клавиш-модификаторов, хотя некоторые из них в Opera позволяют управлять.Лучше использовать keydown для согласованности между браузерами.
Я получаю keyCode === 13 в Opera 11.10 независимо от того, введено ли текстовое поле или нет, и независимо от того, используется ли Prototype следующим образом:
Event.observe(document, 'keydown', function (e) {
alert(e.charCode+'::'+e.keyCode);
});
или непосредственно с использованием собственного метода (с использованием attachEvent for IE):
if (document.addEventListener) {
document.addEventListener('keydown', function (e) {
alert(e.charCode+'::'+e.keyCode);
}, false);
}
else { // IE
document.attachEvent('onkeypress', function (e) {
alert(e.charCode+'::'+e.keyCode);
});
}
Однако alt действительно не обнаруживается внутри текстового поля, если не объединен с управляющей или функциональной клавишей (хотя это неработать в Chrome или IE).Это может быть связано с тем, что Windows использует alt для предоставления доступа к строке меню приложений.
Вы можете попробовать использовать управляющую клавишу и использовать protectDefault () (чтобы избежать поведения по умолчанию, такого как ctrl-f, выполняющего поиск страницы), хотя это можетраздражать ваших пользователей, которые не хотят, чтобы их поведение браузера отключалось для вашей страницы.