某些键组合会阻止javascript中的键事件
在一个需要同时按下多个键以触发独特功能的应用程序上工作 我遇到过这样一种情况,某些组合键会阻止“keydown”被触发 保持水平行某些键组合会阻止javascript中的键事件,javascript,Javascript,在一个需要同时按下多个键以触发独特功能的应用程序上工作 我遇到过这样一种情况,某些组合键会阻止“keydown”被触发 保持水平行1>2>3>4>5>6或垂直列1>Q>a>Z (6个键似乎是浏览器一次识别的最大键)将起作用-如果用户按住角形状(例如1>2>w),则事件将被阻止 可以使用此小提琴进行演示: 有趣的是,尽管键的这种“形状”看起来很重要-2>3>W和3>4>R等也将被阻止 即使这个形状在键盘上旋转,像:C->X->S和N->H->J这样的形状也会这样做 如果留下间隙且拐角未“连接”,
1>2>3>4>5>6
或垂直列1>Q>a>Z
(6个键似乎是浏览器一次识别的最大键)将起作用-如果用户按住角形状(例如1>2>w
),则事件将被阻止
可以使用此小提琴进行演示:
有趣的是,尽管键的这种“形状”看起来很重要-2>3>W
和3>4>R
等也将被阻止
即使这个形状在键盘上旋转,像:C->X->S
和N->H->J
这样的形状也会这样做
如果留下间隙且拐角未“连接”,则事件将正常工作3>E>D>V
-但如果按下C
,则此操作将不起作用
这是怎么回事?这是为了防止键混搭而故意设置的浏览器默认设置吗
编辑:正如提供的答案所指出的,这是一个硬件问题,因此包含硬件信息是有意义的:在2013年末的Macbook Pro上进行了测试,apple stackexchange问题在此确认了答案:这是键盘的硬件限制,而不是浏览器的问题。大多数键盘对按键开关使用矩阵排列,因此无法检测到某些按键组合被按下。将要工作和将不工作的特定组合取决于硬件,但一般来说,假设可以同时按下两个以上的非修改键是不安全的
一些游戏键盘支持(即,一次按下任意数量的键),但这种情况很少出现。这是键盘的硬件限制,而不是浏览器的问题。大多数键盘对按键开关使用矩阵排列,因此无法检测到某些按键组合被按下。将要工作和将不工作的特定组合取决于硬件,但一般来说,假设可以同时按下两个以上的非修改键是不安全的
一些游戏键盘支持(即,一次按下任意数量的键),但这种情况很少见。FWIW,很多键盘都是6键翻滚;我怀疑浏览器中是否存在6键向下限制。我想知道这是否与n键翻转情况有关。这可能只是因为所使用的键盘不支持同时识别多个按键。这不是一件稀奇的事,所以我想知道这是不是真的@数学我认为这取决于键盘和开关的排列。有些便宜的只支持3个。@Daved肯定;6是很常见的,但我的观点是限制在硬件方面。@Mathletics明白了。我同意并认为这与硬件有关。我发布的第二个链接有两个测试对它有好处。我现在的键盘是机械键盘。游戏一。PS2时使用6kro USB和nkro。当然,不同的硬件和接口会有所不同。FWIW,很多键盘都是6键翻滚;我怀疑浏览器中是否存在6键向下限制。我想知道这是否与n键翻转情况有关。这可能只是因为所使用的键盘不支持同时识别多个按键。这不是一件稀奇的事,所以我想知道这是不是真的@数学我认为这取决于键盘和开关的排列。有些便宜的只支持3个。@Daved肯定;6是很常见的,但我的观点是限制在硬件方面。@Mathletics明白了。我同意并认为这与硬件有关。我发布的第二个链接有两个测试对它有好处。我现在的键盘是机械键盘。游戏一。PS2时使用6kro USB和nkro。当然,根据硬件和接口的不同而有所不同。