2016-10-01 10 views
-1

私は、ユーザがキーボードを使って操作を行う対話型アプリケーションを作成しています。ほとんどのキーストロークは適切にキャプチャされ、実行されますが、Ctrlキーを押したときにクロムで、キーの押下イベントを呼び出すのではなく、新しいタブが開きます。それは、FirefoxとInternet Explorer上で完璧に動作どことして、ここではサンプルコードはクロムブラウザのキーストロークショートカットを防ぐことはできません

ある
<html> 
    <head> 
     <style> 
     #section { 
     width: 80%; 
     height: 500px; 
     background: grey; 
     margin: auto; 
     } 
     </style> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <script> 
     $(document).ready(function() { 
      $("#section").keydown(function(e) { 
      stopEvent(e); 
      console.log(e.key + " down"); 
      }); 

      function stopEvent (e) { 
      e.stopPropagation(); 
      e.preventDefault(); 
      } 
     }); 
     </script> 
    </head> 
    <body> 
     <div id="section" tabindex="1"> 
     <h2>Keyboard operations</h2> 
     </div> 
    </body> 
</html> 
+0

。実際のコンピュータ使用の範囲に該当する場合、JavaScriptを使用してそれを防ぐべきではありません。 – PHPglue

+0

IE&Firefoxがこれを可能にしているという事実は、非常に驚​​くべきことです。 ctrl-tの予防私は予防できないと予想していません。 – Keith

+0

私は同意します。あなたは新しいタブが必要な場合でもマウスを動かすことができると思います。 – PHPglue

答えて

0

これは任意の助けであるかどうかを確認し、

から:KeyDownイベントとからkeyupでhttp://unixpapa.com/js/key.html

、イベントオブジェクトには、キーが入力されたときにどの修飾キーが押されていたかを示すフラグ( )もあります。これら は以下のとおりです。

event.shiftKey
event.ctrlKey
event.altKey
event.metaKeyブラウザベンダー次第です

関連する問題