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


How to disable full keyboard keys using javascript or jquery?

我想使用 Javascript 或 jQuery 禁用完整的键盘键。

而且,是否可以使用PHP脚本禁用键盘?

试试这个

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

对于特定区域,请尝试此操作

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

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

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

navigator.keyboard.lock();

完成后,您可以致电

navigator.keyboard.unlock();

以停止捕获这些密钥代码。

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

在您的情况下,这只是取消事件(以@Harish Singh 的答案的风格),但其他用例将涉及在按下某些键集时执行其他操作,预先关闭在 Web 应用程序中打开的文档使用 Ctrl+W 而不是选项卡,或者在全屏游戏中按下 Esc 时打开暂停菜单, 而不是退出全屏。

<小时 />

您可以立即试用键盘锁定API,但浏览器支持目前仅限于桌面上的Chrome和其他Chromium浏览器(Edge和Opera)。

<小时 />

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

试试这个。

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