2013-07-25 12 views
9

私はこのscriptで遊んでいました。なぜAlt GrはCtrlと同じkeyCodeを持っていますか?

そして私はのAlt Grののキーコード17 IE10でとChromeで17および18であることに気づきましたか?

誰かがその理由を説明できない(または全く新しい数字)なぜChromeで2つのポップアップが表示されるのですか?相続人は、コード

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; 
    } 
} 

これは私のコードではありませんが、私はそれにつまずきました。

EDIT:私はéようのAlt Grのを必要とするいくつかのものはまた、で動作するようAltキーGrのが、同時にCtrlキー + Altキーを意味信じて遊ぶの多くを持ちますCtrl + Alt

+8

'AltGr' ===' CTRL' + 'ALT'でテストされています。 'AltGr'を押すと、Chromeのトリガーが押されたように見えます。 – Teemu

+1

クロムが「ページを複数のダイアログを作成しないようにするにはこのチェックボックスをオンにする」と言うのは面白いです – Adam

+0

アラートを作成する別のソースです。同じキーを2回押すと、チェックボックスが表示されます。 – Teemu

答えて

3

問題はalertがコードの実行を停止するため、2番目の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; 
    } 
} 

に機能を変更することにより、我々はAltCtrlの両方が呼び出されることがわかります。あなたがその既に知っているようなあなたの編集後に見えるものの

は、Firefoxの22とIE 9

関連する問題