【发布时间】:2018-12-23 00:34:49
【问题描述】:
我使用keypress 事件将页面导航添加到window,并注意到它在某些浏览器上不起作用。如果我在这些浏览器中使用keyup,则会触发该事件。
所以我的问题可以通过了解以下任何一个来解决:
对于大多数浏览器兼容性,我是使用
keyup还是keypress?我可以吗 两个都用?如何测试某个事件是否受支持?例如,如果我知道 浏览器支持按键我会为它添加一个处理程序。如果支持 keyup,我将为此添加一个处理程序。我可以添加事件处理程序 动态的。
历史:
在 ES4 中有一个 willTrigger 方法,但我在 DOM 中没有看到该方法。
更新:
我找到了一个可能的答案here。它说在某些浏览器中keypress 在提到keyup 时没有任何区别。
【问题讨论】:
-
关于 (1),keyup 和 keypress 的作用不同。据我所知,每个浏览器都支持两者。此外,ES4 从未发布。
-
ES4 没有发布,但是一些功能,例如
addEventListener,被迁移到了更高版本的 JS 中。 -
我在某些浏览器中没有收到任何
keypress事件,但从我一直在阅读的内容来看,这可能是因为它与文本输入更相关。可能会为两者添加处理程序,然后取消事件传播 (developer.mozilla.org/en-US/docs/Web/API/Event/…)
标签: javascript html events keyboard-events dom-events