如何从 JavaScript 完全禁用键盘快捷键

How to disable keyboard shortcuts completely from JavaScript

我正在使用 Phaser 2.2.2 开发一个打字游戏,有一个方法叫做:

game.input.keyboard.addKeyCapture(/*[array of keycodes]*/);

这适用于 Space(无页面滚动)、点、逗号破折号(破折号导致一个网页向后)但不适用于单引号,因为我仍然可以用它打开快速查找,即浏览器仍然检测到快捷方式。此方法可防止按下时键的冒泡状态传播到浏览器,即浏览器未检测到按键。

addKeyCapture

我还发现了这个漂亮的打字应用程序,它完全禁用了键盘快捷键,就像魔术一样:https://typing.io/ 无需额外配置或安装附加组件或插件。

如何在我的 Phaser 游戏中实现这一点?要不要放一些第三方的JS库。

啊,顺便说一句,这个工具适合这项工作:https://github.com/jeresig/jquery.hotkeys

onkeydown 事件在用户按下某个键时发生,您可以使用 returing false 来阻止它:

使用:

document.onkeydown = function (e) {
        return false;
}

这为时已晚,但如果您想阻止键盘快捷键,大多数快捷键使用 ctrl 键,使用 jQuery 阻止该键的代码将是:

$("input[name='yourinput']").keypress(function(event) {
    if ( event.keyCode == 17 ) {
         event.preventDefault();
    }
});

注意: key 17 is ctrl key.