Javascript 使用按键操作ctrl键

Javascript 使用按键操作ctrl键,javascript,events,keypress,ctrl,Javascript,Events,Keypress,Ctrl,我已经看过很多次了,我知道你可以通过javascript中的keydown事件来检测ctrl键(ctrl+c、ctrl+v等),它经常被使用,这样其他进程就不会捕捉到事件,但是我想通过keypress事件来处理它(目的是通过一个事件而不是两个事件进行处理,并希望在为相同功能使用其他键盘快捷键时保持一致性)现在看来,在所有按键事件对象都具有alt、ctrl、shift等布尔属性,并且按键事件的字符代码与按键本身不同(例如,z按键事件为charCode 122,其中ctrl+z按键事件为charCo

我已经看过很多次了,我知道你可以通过javascript中的keydown事件来检测ctrl键(ctrl+c、ctrl+v等),它经常被使用,这样其他进程就不会捕捉到事件,但是我想通过keypress事件来处理它(目的是通过一个事件而不是两个事件进行处理,并希望在为相同功能使用其他键盘快捷键时保持一致性)现在看来,在所有按键事件对象都具有alt、ctrl、shift等布尔属性,并且按键事件的字符代码与按键本身不同(例如,z按键事件为charCode 122,其中ctrl+z按键事件为charCode 26)之后,这应该是可能的。那么问题是,有没有办法防止默认值截取ctrl键,以便按键事件可以处理它们

对于我的特殊情况,我使用的是chrome,但我也希望得到一般的答案

更新

我发现,所有默认的ctrl键都可以通过使用像这样的按键事件来阻止(例如ctrl+s试图保存页面)

$('element').keydown(function(event){
    if(event.ctrlKey){
        event.preventDefault();
    }
});
(注意:这只会阻止默认设置,就像chrome中新标签的ctrl+t无法阻止)


然而,这里的问题是,这也阻止了按键事件的发生。是否有一种方法可以将事件传递给按键事件,其方式将具有按键属性(这意味着像字符码这样的东西现在将被定义)

从另一个站点读取它声明的内容-

键盘事件是前端开发中更为疯狂的部分之一 是不一致和跨浏览器问题

但仍然有一些食谱有助于解决普通的问题 这种情况很容易发生

有以下键盘事件:

向下键
按下一个键。

按键
按下字符键。

keyup
一个键被释放。


按键和按键之间有一个根本的区别

Keydown可在任何按键时触发,并给出扫描代码。 Keypress在keydown之后触发,并给出字符代码,但它仅保证用于字符键

鉴于此,按键无法捕获控制键,因为它不会生成字符

更多信息可以在这里找到更具体的信息


希望这有助于

从另一个网站读到它所说的-

键盘事件是前端开发中更为疯狂的部分之一 是不一致和跨浏览器问题

但仍然有一些食谱有助于解决普通的问题 这种情况很容易发生

有以下键盘事件:

向下键
按下一个键。

按键
按下字符键。

keyup
一个键被释放。


按键和按键之间有一个根本的区别

Keydown可在任何按键时触发,并给出扫描代码。 Keypress在keydown之后触发,并给出字符代码,但它仅保证用于字符键

鉴于此,按键无法捕获控制键,因为它不会生成字符

更多信息可以在这里找到更具体的信息


希望这有帮助

我想你错过了我想用按键事件捕捉它的全部要点,这是问题的全部目的,就像我特别说过的,我知道你可以用按键捕捉它,但我想用按键捕捉它。我看到了你的问题。介意我更改我的答案吗。自从按键和按键与按键不同。是的,请按键,以便您知道这是按键和按键的一个更经过处理的版本,它包括其他人没有的内容,例如shift和ctrl是同一事件的一部分。使用按键按住shift+a时,会给您两个事件shift,使用按键按下a时,会给您一个AI事件。我更新了我的答案包括为什么不能单独使用按键来捕获控制键。我引用了该网站,并提供了该网站的URL,以防您需要更深入的了解。我想您错过了我想通过按键事件捕获它的全部要点,这是问题的全部目的,就像我特别说过的,我知道您可以捕获用“向下键”进行编辑,但我想用“向上键”进行编辑。我看到了你的问题。介意我更改我的答案吗?似乎你不能这样做,因为“向下键”和“向上键”与“向下键”不同。是的,请按“向下键”和“向上键”只是为了让你知道这是“向下键”和“向上键”的更经过处理的版本,其中包括其他人没有的内容,例如shift和ctrl是同一事件的一部分。使用keydown shift+a可以为您提供两个事件shift和使用keypress的a可以为AI提供一个事件。我更新了我的答案,包括为什么不能单独使用keypress捕获控制键。我引用了该网站,并为您提供了网站URL,以防您需要更深入地了解它。