使用纯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库内部执行的所有操作。
至于建议使用什么,如果您愿意学习框架,我肯定会建议使用jQuery。同时,我想说的是您应该学习Javascript的语法,方法,功能以及如何与DOM交互。一旦了解了它的工作原理和正在发生的事情,就应该更轻松地使用jQuery。对我来说,jQuery使事情更一致,更简洁。最后,它是Java语言,并包装了语言。
jQuery非常有用的另一个示例是AJAX。浏览器与AJAX请求的处理方式不一致,因此jQuery可以抽象出来,因此您不必担心。



