如何从 JavaScript 完全禁用键盘快捷键
How to disable keyboard shortcuts completely from JavaScript
我正在使用 Phaser 2.2.2 开发一个打字游戏,有一个方法叫做:
game.input.keyboard.addKeyCapture(/*[array of keycodes]*/);
这适用于 Space(无页面滚动)、点、逗号破折号(破折号导致一个网页向后)但不适用于单引号,因为我仍然可以用它打开快速查找,即浏览器仍然检测到快捷方式。此方法可防止按下时键的冒泡状态传播到浏览器,即浏览器未检测到按键。
我还发现了这个漂亮的打字应用程序,它完全禁用了键盘快捷键,就像魔术一样: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.
我正在使用 Phaser 2.2.2 开发一个打字游戏,有一个方法叫做:
game.input.keyboard.addKeyCapture(/*[array of keycodes]*/);
这适用于 Space(无页面滚动)、点、逗号破折号(破折号导致一个网页向后)但不适用于单引号,因为我仍然可以用它打开快速查找,即浏览器仍然检测到快捷方式。此方法可防止按下时键的冒泡状态传播到浏览器,即浏览器未检测到按键。
我还发现了这个漂亮的打字应用程序,它完全禁用了键盘快捷键,就像魔术一样: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.