event.altKey不在chrome和IE中工作

时间:2014-09-20 18:57:31

标签: javascript google-chrome

假设我们有这段代码:

<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<script type="text/javascript">
var p = 0;

function reset()
{
    // some efforts
}

function code(e) {
    e = e || window.event;
    return(e.keyCode || e.which);
}
window.onload = function(){
    document.onkeypress = function(e){
    var key = code(e);      
    if(key == 38 || key == 40)
    {}
    else if(e.altKey)
    {
        alert('altkey pressed');
    }
    else
    {
        // Another THING!
    }
    };
};
</script>

</head>
<body style="padding:30px; font-size:30px;font-family: Courier;">
<span onclick="reset();" accesskey="r"></span>
</body>
</html>

它适用于Firefox,但不适用于IE浏览器 当我将alt更改为shift时,它适用于所有浏览器。但正如您可能注意到的,我想将其用于快捷键,我认为这是Chrome和IE中 Alt 键的问题(因为两者都使用 Alt for {{ 1}}属性但Firefox使用 Alt + Shift 作为指导here)。
那么大家你建议我做什么?

1 个答案:

答案 0 :(得分:1)

你无法在chrome上检测 alt 按钮,因为它启用了窗口菜单,因此你的页面失去了焦点和事件&#34; keypress&#34;不叫。活动&#34; keydown&#34;另一方面被调用,所以你可以毫无问题地使用它。