我在我建立的网站上有以下 jQuery 代码:
$(document).ready(function() {
// Other Bindings/Initializations Removed
// Hotkey Event Handler to 'doSomething'
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
$(document).keypress("a",function(e) {
if(e.altKey) { // Doesn't work
doSomething();
}
});
// Hotkey Event Handler to 'doSomething'
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
$(document).keypress("a",function(e) {
if(e.shiftKey) { //Works as Expected?
doSomething();
}
});
});
代码捕获按键组合事件,在本例中为“Alt-A”,然后继续调用执行适当操作的函数。我在 FireFox 中测试了此功能,并按预期调用了该功能。当我在 Chrome 中测试该功能时,该功能没有被调用,而是发出了令人讨厌的错误音。我认为也许“Alt-A”与一个重要的浏览器热键组合发生冲突,因此将“A”更改为“N”、“G”,然后是“K”;每次未调用该函数并发出错误提示音时。但是,当我创建 Shift-A/N/G/K 热键组合时,Chrome 会按预期调用该功能。
为什么 Chrome 处理“Alt”键的方式不同?
如何为我的网站定义一个热键,以便它可以使用“Alt”键在 Chrome 中工作?