19

我发现删除键不会keypress在 Chrome 中触发事件,而其他键可以工作。这个问题在 Firefox 中没有出现,只是在 Chrome 中出现,为什么?这是我的代码:

document.addEventListener('keypress', function (e) {
     console.log(e);
}, false);
4

2 回答 2

23

使用keydownkeyup代替,它捕获删除键(以及其他按键没有,请参阅http://www.quirksmode.org/js/keys.html

document.addEventListener('keydown', function (e) {
     console.log(e);
}, false);
于 2012-04-17T08:29:08.243 回答
5

keypress(Del、End、Home 等)的事件不会在 IE、Chrome 和 safari中触发。它只在Firefox 中有效。.

因此您可以使用keyuporkeydown事件,因为该keypress事件是针对真实(可打印)字符的。"keydown"在较低级别处理,因此它将捕获所有非打印键,如 DEL、End 等

于 2012-11-29T07:00:58.720 回答