IE没有看到Alt-D

时间:2013-12-03 02:36:32

标签: javascript jquery internet-explorer-9

我在这里有一个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在这里发生了什么?

谢谢

1 个答案:

答案 0 :(得分:1)

在Chrome,Firefox和IE中,浏览器会处理Alt-D以将焦点移至网址栏。

显然,Chrome让页面首先看到键击而IE不会 - 这可能是标准中未指定的行为。通常,Alt键保留用于系统快捷方式或顶级应用程序操作(在这种情况下,浏览器,而不是您的网页是应用程序)。如果可能,您应该使用Ctrl键为您的应用程序。

一个猜测是,IE会处理击键并立即将焦点移动到地址栏,这会阻止任何进一步的键盘路由到您的网页。其他浏览器处理按键的方式略有不同,这使得网页可以看到它。

仅供参考,谷歌搜索显示,由于IE8和我没有找到解决办法,因此javascript无法在IE中捕获Alt + D.