温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - Replacement for deprecated `keypress` DOM event
dom dom-events events html javascript

javascript - 替换过时的`keypress` DOM事件

发布于 2020-04-15 12:58:22

根据MDN文章 keypress事件已弃用:

在此处输入图片说明

但是我在其他地方找不到关于是否应在新项目中使用此事件的任何信息。如果我们不应该,那么替代品是什么?

有人可以提供见解吗?

查看更多

提问者
Alexander Abakumov
被浏览
108
Barmar 2018-10-19 05:54

由于不建议使用该事件,因此应避免在新代码中使用它,并计划从旧代码中删除它。W3C规范说这约不赞成使用的功能:

标记为已弃用的功能包含在规范中,以作为对较早的实现或规范的引用,但是是可选的,不建议使用。在本规范中,仅应弃用具有现有或正在进行的替换功能。尚不包含对功能的支持的实现可能出于与现有内容向后兼容的原因而实现了不推荐使用的功能,但是创建内容的内容作者不应使用不推荐使用的功能,除非没有其他方法可以解决用例。引用此规范的其他规范不应使用不推荐使用的功能,而应指出赞成不推荐使用该功能的替换。本规范中标记为不推荐使用的功能有望从将来的规范中删除。

的规范keypress event说:

警告本规范中定义了按键事件类型,以供参考和完整性,但本规范不赞成使用此事件类型。在编辑上下文中,作者可以改为订阅beforeinput事件。

您也可以使用keydownand / or keyup事件。请参阅按键,按键,按键和输入事件之间的区别?

但是,由于beforeinput尚无足够的支持,因此如果这些其他事件都不适合您的用例,则您现在必须继续使用keypress(这是“除非没有其他方法可以解决用例”异常),规格)。