在浏览器中禁用关键功能

时间:2009-10-18 06:58:43

标签: javascript jquery dom javascript-events keypress

我正在用JavaScript编写应用程序(带有JQuery)。该应用程序具有许多功能,用户需要快速并且可能同时访问(您可以将其视为游戏,即使它不是游戏),所以我将其设置为使用键盘。我有一个系统的原型工作(至少在Chrome中),但有一个问题,当我按下,例如,Ctrl-T时,它会打开一个新选项卡。我想将此作为我的应用程序的一部分,例如,切换一些设置。一般来说,我想禁用浏览器的Ctrl键功能。这也适用于Alt和Shift。以不同的方式,我还想禁用浏览器对Tab键的使用。基本上,我希望我的应用程序在使用键盘时能够完全控制键盘(如果他们想要导航,他们仍然可以使用鼠标进行操作)。我将添加警告,我不关心一些不太常见的键(F1-F12,Windows / Mac-Command,菜单,Enter键的任何右侧),因为我的应用程序主要针对笔记本电脑,许多不有这些键,所以不会被使用。

我的问题是,如何使用JavaScript / JQuery / DOM禁用此浏览器功能?

我理解以这种方式接管浏览器功能听起来非常专制,但实际上它非常必要。从原型和一些目标受众测试用户(我的家人),每个人都同意这是一个好主意。

我还考虑过将我的应用程序移出浏览器并用某种应用程序语言(可能是Java)编写它,但我想知道在进行这种切换之前这种功能是否可以在JavaScript中使用。这是原型时间,所以每个想法仍有待考虑!

1 个答案:

答案 0 :(得分:0)

基本上,您在合适的时间返回false。请参阅:How to create Ctrl+Key shortcuts in Javascript

我应该添加并说有时这不起作用 - 由浏览器决定是否允许这样做 此外,有时可以将e.which更改为另一个键,但同样,这并不总是有效。