2011-06-30 7 views
2

可能性の重複:コードの
Which keycode for escape key with jQueryJavaScriptを - 検出ESCキークロスブラウザ

この小さな作品は、FirefoxやOperaのための魔法のように動作します。 Internet Explorerはそれを好きではありません。

window.document.onkeydown = function (e) { 
    if (!e) { 
     e = event;  
    } 
    if (e.keyCode == 27) { 
     myfunction(); 
    } 
} 

IEでESCのキーダウンを検出できませんか? ありがとう

+0

この質問の重複はありません。 – NetMage

答えて

4

どのバージョンのIEがありますか? このコードは、IE(9.01)と私の作品:

<!doctype html> 
<html> 
    <head> 
    <title></title> 
    <script type="text/javascript"> 
     window.document.onkeydown = function (e) 
     { 
     if (!e) e = event; 
     if (e.keyCode == 27) 
      alert("Hello!"); 
     } 
    </script> 
    </head> 
    <body> 
    </body> 
</html> 

チェックも、あなたの文書型、あなたのIEは多分、癖モードを使用することができます。

+0

これはとても優雅です。エスケープキーが押されるたびに不要なコードの実行を防ぐためにブール変数をチェックする条件付き 'if'を追加しました。 if(popped_up == true)... ' – Slink

1

一部のブラウザではe.keyCode、その他のe.charCodeを使用しています。また、これはイベントのタイプによって異なりますが、FFのような一部のブラウザでは、1つのタイプのキーに1つを使用し、別のタイプ(文字と矢印キーなど)に対してもう1つを使用します。

しかし、これをjsfiddle e.keyCodeはIE9の正しいチェックです。どのバージョンのIEをテストしていますか?

関連する問題