Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOM中的按键事件_Javascript_Html_Dom - Fatal编程技术网

Javascript DOM中的按键事件

Javascript DOM中的按键事件,javascript,html,dom,Javascript,Html,Dom,我刚开始学习DOM事件,当我按下enter键时,我正在使用keypress事件使一些事件发生。它工作得很好 document.addEventListener('keypress', function(event){ if(event.keyCode === 13){ console.log("enter was pressed"); } }); 但我在MDN事件参考上看到,keypress事件已被弃用 其贬值的原因是什么

我刚开始学习DOM事件,当我按下enter键时,我正在使用keypress事件使一些事件发生。它工作得很好

  document.addEventListener('keypress', function(event){

        if(event.keyCode === 13){
            console.log("enter was pressed");
        }
    });
但我在MDN事件参考上看到,keypress事件已被弃用


其贬值的原因是什么?按键事件的新替代方案是什么?

以及替代方案是什么。为了保持性能,您可以对逻辑使用Debounce。

由于此事件已被弃用,因此您应该改用beforeinput或keydown。
弃用它的原因只不过是理论上的纯度。它被称为“按键”,但它与键无关——它与字符输入有关,因此我们的想法是使用“beforeinput”。除了beforeinput没有在Firefox中实现。因此UiEvents规范不能退出草稿状态,因此不能真正反对keypress,只希望它被反对。无论如何,keypress不会消失,因为如果它消失了,数百万个网站将停止工作,所以如果它做了你需要的,就使用它。