如何检查事件是否被触发或何时使用按键与按键?

How do I check if a event is triggered or when to use keypress versus keyup?

我已经在 window 添加了页面导航,在这些浏览器中使用 keypress event and noticed it's not working on some browsers. If I use keyup 事件被触发。

所以我的问题可以通过以下任一方式解决:

  1. 对于大多数浏览器兼容性,我使用 keyup 还是 keypress?我可以吗 两者都用?

  2. 如何测试事件是否受支持?例如,如果我知道 浏览器支持按键我会为它添加一个处理程序。如果它支持 keyup,我会为此添加一个处理程序。我可以添加事件处理程序 动态地。

历史:

在 ES4 中有一个 willTrigger 方法,但我在 DOM 中没有看到那个方法。

更新:
我找到了一个可能的答案 here。它说在某些浏览器中 keypress 被调度,其中在提到 keyup 时没有任何区别。

为了快速区分 keypress 和 keyup,keyup 只会触发一次,无论按下一个键多长时间,而 keypress 事件可以触发多次。你可以同时使用(我不明白为什么不 - 你会用它们做不同的事情)和 basic support for the events is present cross-browser (although figures for mobile browser support is not fully known). There are jquery equivalents of both the .keyup()/ onkeyup and .keypress() / onkeypress

希望对您有所帮助