如何检测Alt键的状态何时发生变化

时间:2017-08-27 20:07:18

标签: javascript html

我有一个用户界面,提供了一些功能,可以识别 alt 键是否关闭,以便在点击和以其他方式与用户界面交互时确定一些替代功能。但是,由于移动设备上通常没有 alt 键,因此屏幕上还有一个图形区域,可以像按钮一样轻触以切换备用功能。元素的外观会发生变化,以指示是否使用了备用功能。为了保持一致性,当 alt 按钮关闭时,此元素也会更改外观,并且此元素的状态是查询的内容,以确定是否调用备用功能。

问题是,似乎在某些情况下没有通知 alt 键被释放,因此视觉表示不正确。例如,当用户alt +标签远离窗口时,没有任何键事件表明 alt 键已被释放。要解决此问题,窗口的 onblur 事件用于将 alt 键标记为已释放,因为用户无法在不释放alt键的情况下alt + tab返回,如果按住alt键同时通过其他方式使窗口聚焦,onkeydown事件多次触发。

然而,还有其他方法可以使用 alt 键,我无法弄清楚如何检测释放。例如,在Chrome中,如果我点击alt +空格然后点击窗口关闭窗口菜单,则没有任何关键事件,我甚至可以检查altKey标志并发现它为false。只要在对话框出现之前未释放 alt 键,alt + f甚至alt + shift + i也是如此。更糟糕的是,这些甚至都没有触发窗口,文档或文档上的任何模糊事件。尽管我显然已经有了焦点。我可以在某些案例中使用onclick或@trincot笔记,onmousemove来检测某些情况下发布的 alt ,但不是全部

当我按下alt键并检查它是否已被释放时,我考虑开始某种轮询,但是我无法找到任何方法来检测 alt 键是否在外面关键事件。

当Alt键的状态发生变化时,如何在不失败的情况下进行检测?

0 个答案:

没有答案