Internet explorer IE 10及以上版本-如何识别ctrl左键与右键?

Internet explorer IE 10及以上版本-如何识别ctrl左键与右键?,internet-explorer,keyboard-events,Internet Explorer,Keyboard Events,IE9/10触发的keyUp事件中是否有任何信息允许知道是释放了左键还是右键 开发环境:浏览器“游戏”,用户说“是”(ctrl-right)和“否”(ctrl-left),通过计算最后释放的键,优雅地处理用户同时按下两个键的情况 迄今为止的调查结果: e、 browserEvent.ctrlLeft属性在keyUp上似乎始终为false e、 ctrlKey,e.browservevent.ctrlKey甚至在keyUp上似乎总是错误的-对于两个ctrl键。(惊人) e、 browserEve

IE9/10触发的keyUp事件中是否有任何信息允许知道是释放了左键还是右键

开发环境:浏览器“游戏”,用户说“是”(ctrl-right)和“否”(ctrl-left),通过计算最后释放的键,优雅地处理用户同时按下两个键的情况

迄今为止的调查结果:

  • e、 browserEvent.ctrlLeft属性在keyUp上似乎始终为false
  • e、 ctrlKey,e.browservevent.ctrlKey甚至在keyUp上似乎总是错误的-对于两个ctrl键。(惊人)
  • e、 browserEvent.keyCode对于左侧和右侧均为17
  • e、 OriginaleEvent未定义
在这种情况下,我看不出如何区分左和右。感谢您的回复

编辑

更令人困惑的是,在按键事件中,直到今天,我相信它们允许区分ctrlLeft和ctrlRight。有一个属性e.browserEvent.ctrlLeft,当我按左ctrl键时,该属性的值为'true',当我按右ctrl键时,该属性的值为'false'

但是:随着按键的快速连续,情况恶化了。 当我按1时。ctrlRight,按住,然后快速2。ctrlLeft,事情看起来不错:我有两个按键事件。在第一种情况下,e.browserEvent.ctrlLeft为false,在第二种情况下,e.browserEvent.ctrlLeft为true

当我按1时。ctrlLeft,按住,然后快速2。ctrlRight,不太多:我有两个按键事件。在第一种情况下,e.browserEvent.ctrlLeft为真——在第二种情况下,e.browserEvent.ctrlLeft也为真

MS的文档指出,e.browserEvent.ctrlLeft是可利用的资源,以便知道按下了哪个ctrl键

它们提供了一个交互式演示实现。然而,即使在这个演示中,错误行为也是显而易见的,在一阶按键上产生一种状态,在二阶按键上产生另一种状态


我认为我可以得出这样的结论:如果您使用内联事件处理程序,那么IEF运行的任何客户端代码都是不可能的。例如onkeyup“dokeyup(event);”。注意,必须将全局事件对象作为参数传递。函数dokeyup(evt){if(evt.ctrKey){//do something}}。。。请在您的问题中加入最低限度的代码。请参阅我的问题与访问浏览器提供的信息的任何特定方式无关。我怀疑IEF提供的JS keyUp事件对象是否使用内联事件处理程序。例如onkeyup“dokeyup(event);”。注意,必须将全局事件对象作为参数传递。函数dokeyup(evt){if(evt.ctrKey){//do something}}。。。请在您的问题中加入最低限度的代码。请参阅我的问题与访问浏览器提供的信息的任何特定方式无关。我怀疑IE提供的JS keyUp事件对象