Nit*_*itz 15 javascript keyboard google-chrome
在javascript Event对象中,有一些布尔值来检查是否按下了修改键:
ctrlKey:CTRL关键.altKey:ALT关键.altLeft:ALT左键.仅适用于IE.altGraphKey:ALTGR关键.仅适用于Chrome/Safari.但是,有一些问题:
ctrlKey,以true和altKey对true当你按下ALTGR修改.ctrlKey要false和altKey到true当你按下ALTGR修改,因为只有ALT已被按下.altGraphKey有财产,但总是如此undefined.问题:如何区分ALT+ CTRL或ALTGR按键?特别是在Chrome中.
Jas*_*son 11
webkit浏览器中的altGraphKey似乎不再存在(截至2013年9月),并且Firefox的行为已更改.AltGr当前密钥的浏览器行为似乎是:
也就是说,它们目前都是一致的(除了IE8,它仍然一直不一致).
以下代码段应该在现代浏览器中捕获Alt Gr- 但不能Alt或Ctrl- .但是,您将需要IE8的特殊情况:
if (event.ctrlKey && event.altKey) {
// Appears to be Alt Gr
}
Run Code Online (Sandbox Code Playgroud)
免责声明:我没有带有此键的键盘,因此我无法测试自己,但规范说可以使用该key属性。如果您只需要支持实现它的浏览器(在撰写本文时,只有 Safari 不支持),这可能是一个很好的解决方案。您可以检查该值是否为"AltGraph"。
window.onkeydown = function (e) {
if (e.key === 'AltGraph') {
console.log(e.key);
}
};Run Code Online (Sandbox Code Playgroud)