【问题标题】:How to disable full keyboard keys using javascript or jquery?如何使用 javascript 或 jquery 禁用全键盘键?
【发布时间】:2013-11-06 19:53:41
【问题描述】:

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

另外,是否可以使用 PHP 脚本禁用键盘?

【问题讨论】:

  • 不确定您的意思。你能举例说明一下吗?
  • 嗨迈克尔,这意味着我正在创建用户登录表单,在这种情况下用户不能使用键盘所有键盘在此页面上不起作用
  • 浏览器不支持网页

标签: javascript php jquery keyboard


【解决方案1】:

试试这个

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

特定区域试试这个

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

【讨论】:

  • @Harish Singh 和 Mohit Gupta 你确定这适用于所有键盘键吗?包括 Alt+f4、Alt+tab、Escape(当窗口全屏模式激活时)和 Print Screen 按钮。请回复我..
【解决方案2】:

虽然取消keydown 效果适用于大多数 开箱即用的键,但一些特殊组合(例如Ctrl+R kbd> 用于重新加载,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 秒。

【讨论】:

    【解决方案3】:

    试试这个。

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

    【讨论】:

    • windows 键为假
    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2021-05-31
    • 2012-01-05
    • 1970-01-01
    • 2016-12-01
    • 2012-02-24
    相关资源
    最近更新 更多