我在这里有一个jsfiddle - http://jsfiddle.net/ae7Ed/7/ - 当焦点在结果区域时,它会查找Alt键和'D'键:
$(document).keydown(function(e) {
console.log ("document keydown: keyCode = " + e.keyCode);
if((e.keyCode == 68) && e.altKey){ // Alt-D
console.log ("document keydown: Alt-D entered");
}
});
Firefox,Safari和Chrome都会在自己输入时看到每个字符,并且会看到在按下D时按住Alt的情况。 IE(我正在运行IE10)在它自己输入时会看到每个键,但是在按下D时没有看到按住Alt的情况。
有谁知道IE在这里发生了什么?
谢谢
答案 0 :(得分:1)
在Chrome,Firefox和IE中,浏览器会处理Alt-D以将焦点移至网址栏。
显然,Chrome让页面首先看到键击而IE不会 - 这可能是标准中未指定的行为。通常,Alt键保留用于系统快捷方式或顶级应用程序操作(在这种情况下,浏览器,而不是您的网页是应用程序)。如果可能,您应该使用Ctrl键为您的应用程序。
一个猜测是,IE会处理击键并立即将焦点移动到地址栏,这会阻止任何进一步的键盘路由到您的网页。其他浏览器处理按键的方式略有不同,这使得网页可以看到它。
仅供参考,谷歌搜索显示,由于IE8和我没有找到解决办法,因此javascript无法在IE中捕获Alt + D.