使用JQuery绑定keypress事件无法在Chrome中运行

Vee*_*era 2 ubuntu jquery google-chrome

我正在使用Ubuntu 10并在Firefox 3.6和Chrome 5中尝试以下代码.

    $(document).ready(function(){
        $(document).bind("keypress", function(e){
            alert("Pressed");
        });
    });
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,上面的代码在FF3.6中运行良好.即对于按下的每一把钥匙,我都会收到警报框.

但在Chrome中,我看到了不同的行为.例如,当我按向上/向下翻页,向上/向下箭头/向左键(不幸的是,这些是我迫切想要跟踪的关键事件)时,我没有收到警报框.

有没有人为什么Chrome没有将'keypress'事件绑定到某些键,例如向上/向下翻页,向左/向右箭头?

And*_*y E 5

onkeypress事件事件最初是为Internet Explorer的一个专有的事件,后来包括在其他浏览器,但具有不同的实现.Chrome/Safari仍然适用于Microsoft实施,其文档指出:

从Microsoft Internet Explorer 4.0开始,onkeypress事件将触发,可以取消以下键:

字母:A - Z(大写和小写)
数字:0 - 9
符号:!@#$%^&*()_ - + = <[] {} ,. /?\ | ''"〜
系统:ESC,SPACEBAR,ENTER

对于其他键,您应该绑定到keydownkeyup.

所述Quirksmode.org兼容性参考状态:

当用户按下特殊键(如箭头键)时,浏览器不应触发按键事件.