10

我正在玩这个脚本

我注意到IE10 中Alt Gr的 KeyCode 是17,Chrome中的 KeyCode 是17 AND 18 ?

有人可以解释为什么它不是18(或一个全新的数字)以及为什么我在 Chrome 中得到两个弹出窗口吗?

继承人的代码:

document.onkeyup = KeyCheck;
function KeyCheck(e) {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    alert(KeyID);
    switch (KeyID)
    {
        case 18:
            document.Form1.KeyName.value = "Alt";
            break;
        case 17:
            document.Form1.KeyName.value = "Ctrl";
            break;
    }
}

这不是我的代码,我只是偶然发现了它。

编辑:我相信更多的游戏Alt Gr意味着Ctrl+Alt同时,因为一些需要Alt Gré的东西也可以与Ctrl+一起使用Alt

4

1 回答 1

4

问题是alert代码的执行暂停,所以第二个onkeyup没有被调用。通过将功能更改为

function KeyCheck(e)
{
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    switch(KeyID)
    {
    case 18:
        document.Form1.KeyName.value = document.Form1.KeyName.value+"Alt";
        break; 
    case 17:
        document.Form1.KeyName.value = document.Form1.KeyName.value+"Ctrl";
        break;
    }
}

我们可以看到两者Alt并被Ctrl调用。

使用 Firefox 22 和 IE 9 测试。

于 2013-07-25T13:05:21.693 回答