如何使用javascript或jquery禁用全键盘键?

时间:2013-10-28 06:02:42

标签: javascript php jquery keyboard

我想使用java-script或jQuery禁用全键盘键。 和 是否可以使用PHP脚本禁用键盘?

3 个答案:

答案 0 :(得分:11)

试试这个

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

针对特定区域尝试此

$(".class").keydown(function(event) { 
    return false;
});

答案 1 :(得分:1)

虽然取消 keydown 效果适用于 大多数 开箱即用的键,但一些特殊组合(例如 Ctrl+R 用于重新加载,Ctrl+T 用于新标签等)不能以这种方式被阻止,而是总是发送到浏览器。

新的(并且在撰写本文时是实验性的)Keyboard Lock API 允许您捕获这些类型的按键。你可以像这样使用它,或者如果你只想锁定其中的一些,你也可以传入一组键码。

navigator.keyboard.lock();

完成后,您可以打电话

navigator.keyboard.unlock();

停止捕获这些关键代码。

请注意,您仍然需要监听和响应 keydown 事件 - 新 API 允许您捕获这些较低级别的按键操作,但您仍然需要定义当它们发生时会发生什么“重新按下。

在您的情况下,这只是取消事件(以 @Harish Singh's answer 的样式),但其他用例将涉及在按下某些键组时执行其他操作,可能会关闭在您的网络中打开的文档使用 Ctrl+W 而不是选项卡的应用程序,或者在全屏游戏中按下 Esc 时打开暂停菜单,而不是退出全屏。


您今天可以try the Keyboard Lock API,但 browser support 目前仅限于桌面版 Chrome 和其他 Chromium 浏览器(Edge 和 Opera)。


最后一个注意事项是,出于安全原因,用户始终可以通过浏览器手势退出键盘锁定,以防止他们被困(如果您将其与 Pointer Lock API 结合使用,可能会发生这种情况)。在 Chrome 中,此退出手势是按住Esc 键 2 秒。

答案 2 :(得分:-1)

试试这个。

$(document).keypress(function(e) {
    return false;
});