我有以下 Javascript:
$(function(){
$("#foo").keypress(function (event) {
if (event.keyCode == 13) {
console.log(event.ctrlKey ? "Ctrl+Enter (13)" : "Enter (13)");
}
else if (event.keyCode == 10) {
console.log(event.ctrlKey ? "Ctrl+Enter (10)" : "Enter (10)");
}
});
});
本例中的 Foo 是一个输入框。
在 Windows 下,并且仅限于 Windows - 按住 CTRL 修饰符可将 keyCode 从 13
更改为 10
。因此,如果我执行 Enter 与CTRL + Enter,我在控制台中看到 Enter (13)
和 Ctrl+Enter (10)
。无论浏览器如何,Mac OS 和 Linux 都不会执行此操作。
这是为什么?
在 http://jsfiddle.net/K6NhF/ 玩 fiddle
最佳答案
在不同的浏览器中有很多不一致的地方,这里有一篇文章描述它们 JavaScript Madness: Keyboard Events
还有一个用于在 javascript 中规范化键码的库 keycode.js
关于javascript - 按住 'ctrl+enter' 会为按键事件提供与直接 'enter' 不同的键码 - 但仅限于 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23889508/