1

使用 PHP、JS 或 HTML(或类似的东西)我将如何捕获按键?例如,如果用户按下 ctrl+f 或者甚至只是 f,就会发生某个功能。

++++++++++++++++++++++++++编辑+++++++++++++++++++ 好的,这是正确的,因为我无法让它工作。我为我的 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>

++++++++++++++++++++编辑++++++++++++++++++++

这是一切,但我无法让它工作:

<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() 方法,但是你可以从 javascript onkeypress 事件中获取你想要的数据。

于 2010-12-26T04:42:08.557 回答
0

使用 jQuery:

您可以使用jQuery Keydown

关于捕获不同关键事件的好文章:

在 jQuery 中处理事件

编辑:

JavaScript

这里有一些不错的文章,用 javascript 来做这件事,还有很好的 DEMO:

于 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 回答