替换已弃用的“keypress” DOM 事件

2024-06-19

根据MDN 文章 https://developer.mozilla.org/en-US/docs/Web/Events/keypress keypress事件已被弃用:

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

有人可以提供见解吗?


由于该事件已被弃用,因此您应该避免在新代码中使用它,并计划从旧代码中删除它。这W3C规范 https://www.w3.org/TR/DOM-Level-3-Events/#deprecates关于已弃用的功能是这样说的:

标记为已弃用的功能包含在规范中作为旧实现或规范的参考,但它们是可选的且不鼓励使用。在本规范中,只有具有现有或正在进行的替换的功能才必须被弃用。出于与现有内容向后兼容的原因,尚未包含对该功能的支持的实现可以实现已弃用的功能,但是创建内容的内容作者不应使用已弃用的功能,除非没有其他方法来解决用例。引用本规范的其他规范不应使用已弃用的功能,而应指向已弃用的功能的替代品。本规范中标记为弃用的功能预计将从未来的规范中删除。

规格keypress event https://www.w3.org/TR/DOM-Level-3-Events/#event-type-keypress says:

Warning本规范中定义按键事件类型是为了参考和完整性,但本规范不赞成使用此事件类型。在编辑上下文中时,作者可以订阅输入前 https://www.w3.org/TR/DOM-Level-3-Events/#beforeinput事件代替。

您还可以使用keydown https://developer.mozilla.org/en-US/docs/Web/Events/keydown and/or keyup事件。看keyup、keydown、keypress 和 input 事件之间有什么区别? https://stackoverflow.com/questions/38502560/whats-the-difference-between-keyup-keydown-keypress-and-input-events

然而,自从beforeinput还没有太多支持,如果这些其他事件都不适合您的用例,您将不得不继续使用keypress目前(这是规范中的“除非没有其他方法来解决用例”例外)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换已弃用的“keypress” DOM 事件 的相关文章

随机推荐