JS中如何实现按下Shift+Enter组合键触发执行对应函数的功能
原代码问题分析
- 你使用的
keypress事件已被Web标准废弃,对Shift等修饰键的识别支持存在缺陷,应该改用keydown事件 e.key只会返回当前按下的非修饰键的键名,Shift是修饰键,需要通过事件对象内置的e.shiftKey布尔属性判断是否同时按下,不可能出现Enter+Shift拼接出来的键名字符串
正确实现代码
document.addEventListener('keydown', function (e) { // 同时满足按下Enter键、按下Shift键两个条件 if (e.key === 'Enter' && e.shiftKey) { // 如果需要阻止Shift+Enter的默认行为(比如文本域内换行)可以加上下面这行 // e.preventDefault() console.log("test"); // 此处写入你要执行的其他逻辑 } });
额外说明
- 其他修饰键也可以用对应的属性判断:Ctrl对应
e.ctrlKey,Alt对应e.altKey,Mac系统的Command键对应e.metaKey - 如果需要限定只有在特定元素内按下快捷键才生效,把绑定事件的对象从
document换成对应的DOM元素即可
内容的提问来源于stack exchange,提问作者Yas. Aldulaimy
相关产品推荐
相关产品推荐

