С простой Javascript, самое простое:
document.onkeypress = function (e) {
e = e || window.event;
// use e.keyCode
};
Но с этим, вы можете связывать только один обработчик для события.
Кроме того, вы можете использовать следующие, чтобы иметь возможность потенциально связать несколько обработчиков к тому же событию:
addEvent(document, "keypress", function (e) {
e = e || window.event;
// use e.keyCode
});
function addEvent(element, eventName, callback) {
if (element.addEventListener) {
element.addEventListener(eventName, callback, false);
} else if (element.attachEvent) {
element.attachEvent("on" + eventName, callback);
} else {
element["on" + eventName] = callback;
}
}
В любом случае, keyCode
не соответствует во всех браузерах, поэтому есть больше, чтобы проверить и выяснить. Обратите внимание на e = e || window.event
- это обычная проблема с Internet Explorer, помещая событие в window.event
вместо передачи его в обратный вызов.
Ссылки:
С JQuery:
$(document).on("keypress", function (e) {
// use e.which
});
Ссылка:
Кроме JQuery быть «большой» библиотеки JQuery действительно помогает с несоответствиями между браузерами, особенно с оконными событиями ... и что не может быть отказано. Надеюсь, очевидно, что код jQuery, который я предоставил для вашего примера, намного более элегантен и короче, но выполняет то, что вы хотите, последовательно. Вы должны быть уверены, что e
(событие) и e.which
(код ключа, для того, чтобы узнать, какая клавиша была нажата) точны. В простом Javascript это немного сложно узнать, если вы не сделаете все, что внутренняя библиотека jQuery.
Замечания: keydown
событие, отличное от keypress
. Вы можете узнать о них подробнее здесь: onKeyPress Vs. onKeyUp and onKeyDown
Что касается предложения о том, что использовать, я бы определенно предложил использовать jQuery, если вы хотите изучить структуру. В то же время я бы сказал, что вам следует изучить синтаксис, методы, функции Javascript и способы взаимодействия с DOM. Как только вы поймете, как это работает и что происходит, вам должно быть удобнее работать с jQuery. Для меня jQuery делает вещи более последовательными и более краткими. В конце концов, это Javascript и обертывает язык.
Еще один пример использования jQuery с AJAX. Браузеры несовместимы с тем, как обрабатываются запросы AJAX, поэтому аннотации jQuery позволяют вам не беспокоиться.
Вот что-то, что могло бы помочь решить:
Я предлагаю просто прослушивает событие нажатия клавиши, или, возможно, один из его коллег (KeyDown или KeyUp) –
начать здесь - Http: //api.jquery.com/keypress/ –
jQuery * есть * JavaScript; единственное отличие состоит в том, что jQuery - это * библиотека *, которая абстрагирует различия между браузерами, чтобы упростить (но не обязательно более эффективно) писать кросс-браузерный код. –