1

PHP、JS、またはHTML(または同様のもの)を使用して、キーストロークをキャプチャするにはどうすればよいですか?ユーザーがctrl+fを押したり、場合によってはfを押したりすると、特定の機能が発生します。

++++++++++++++++++++++++ EDIT +++++++++++++++++++わかりました、これは正しいです。動作させることができないからです。そして、私のn00bnessについてお詫びします。これは簡単な質問であり、jQueryは初めてであり、JSについてますます多くを学んでいます。

<script>    
var element = document.getElementById('capture');
    element.onkeypress = function(e) { 
       var ev = e || event;
       if(ev.keyCode == 70) {
          alert("hello");
       }
    }
</script>
<div id="capture">
Hello, Testing 123
</div>

++++++++++++++++ EDIT ++++++++++++++++++++

これがすべてですが、私はそれを機能させることができません:

<link rel="icon" href="favicon.ico" type="image/x-icon">
<style>
* {
margin: 0px
}  

div {
    height: 250px;
    width: 630px;
    overflow: hidden;
    vertical-align: top;
    position: relative;
    background-color: #999;
}
  iframe {
    position: absolute;
    left: -50px;
    top: -130px;
  }
</style>
<script>
document.getElementsByTagName('body')[0].onkeyup = function(e) { 
   var ev = e || event;
   if(ev.keyCode == 70 && ev.ctrlKey) { //control+f
      alert("hello");
   }
}
</script>
<div id="capture">
Hello, Testing 123<!--<iframe src="http://www.pandora.com/" scrolling="no" width="1000" height="515"frameborder="0"></iframe>-->
</div>

+++編集+++

Jacobのおかげで、修正したと思っていましたが、FFとIE(現在はChromeを使用していますが、機能していました)で試してみたところ、機能しませんでした。このスクリプトは、私だけが表示する個人用ページ用であるため、最大の取引ではありませんが、将来の参考のために、これがIEまたはFFのどちらでも機能しない理由を知りたいと思います。

4

4 に答える 4

12

確かに、これを行う唯一の方法はJavaScriptを使用することであり、次のようにします。

window.onload = function() {
   document.getElementsByTagName('body')[0].onkeyup = function(e) { 
      var ev = e || event;
      if(ev.keyCode == 70) {//&& ev.ctrlKey) {
         //do something...
      }
   }
};

必要な特定のキーコードを見つけるには、次の記事を参照してください:http ://www.webonweboff.com/tips/js/event_key_codes.aspx

jsFiddleの例

于 2010-12-26T04:42:11.597 に答える
2

キーの押下に関連するjavascriptイベントを探しています。ここにはいくつかの厄介なブラウザの非互換性があるため、jQueryのようなJSライブラリを使用するのが最善です。このライブラリでは、jQuery keypress()メソッドを使用できますが、必要なデータはjavascriptonkeypressイベントから取得できます。

于 2010-12-26T04:42:08.557 に答える
0

jQueryの使用:

あなたはそれを使用してそれを行うことができますjQuery Keydown

さまざまな主要イベントのキャプチャに関する素晴らしい記事:

jQueryでのイベントの操作

編集:

JavaScript

これは、JavaScriptで素晴らしいデモを使用してこれを行うための優れた記事です。

于 2010-12-26T04:42:10.317 に答える
0

参照されている他の回答のように特定の要素のキーストロークをキャプチャするよりも、ウィンドウ上のすべてのキーをキャプチャする方が適切です。

したがって、ネイティブJavaScriptを使用します。

window.onload = function (){
 eventHandler = function (e){
    if (e.keyCode == 70 && e.ctrlKey)
    {
      //do stuff
      //console.log(e);
    }
  }

  window.addEventListener('keydown', eventHandler, false);
}

JQueryの使用:

$(document).ready(function(){
  $(window).keydown(function (e) {
    if (e.keyCode == 70 && e.ctrlKey)
    {
        //do stuff
    }

  });
});
于 2010-12-26T06:44:39.953 に答える