-1

下面是我的代码:

$(document).keypress(function(e){
  var s = String.fromCharCode(e.which);
  if ( s === "f"){
    alert ("its f");
  }
  else if ( s === "r"){
    alert ("its r");
  }
});

我想在 JavaScript 中做到这一点…………!!

我怎样才能做到这一点 ?

4

4 回答 4

9
document.addEventListener('keypress', function(e) { 
  var key = e.keyCode || e.which;
  ... // rest of code
});
于 2013-03-16T06:46:27.590 回答
2

在原生 js 中,您可以通过 onClick、onKeyPress 等元素属性附加事件。不要忘记,事件处理函数中的事件参数;)在不同的浏览器中,您可以通过事件的不同属性读取按下键的代码。

这是一个例子:

<script type="text/javascript">
  document.getElementsByTagName("body")[0].onkeypress=function(e){
       var s = String.fromCharCode(e.which | evt.witch );
       switch(s){
           case "f":
              alert("key is 'f'");
              break;
           ....
       }
   };
</script>

或者您可以使用该addEventListener方法,如下所示:

<script type="text/javascript">
     document.getElementsByTagName("body")[0].addEventListener('keypress',function(e){
       var s = String.fromCharCode(e.which | evt.witch );
       switch(s){
           case "f":
              alert("key is 'f'");
              break;
           ....
       }
     });
</script>

您应该在加载文档后运行这些脚本。您可以像这样订阅domready事件:

<script type="text/javascript">
       document.addEventListener( "DOMContentLoaded", function(){
           //your code here  (one of the above)
       }, false );
</script>

最后一节在这里讨论:javascript domready? . 不幸的是,您可以以不同的方式订阅 domready 事件,具体取决于客户端浏览器。

一个建议(题外话):

当你使用原生 javascript 时会出现一堆问题,因为浏览器的不兼容问题,已经在jQuery. 如果您想使用jQuery,但您无法访问 html 代码,并且您想加载jQuery您可以jQueryCDNurl 包含到您的网站,也可以使用 javascript,如下所示:

<script>  
   (function() {
        var jQ = document.createElement('script'); jQ.type = 'text/javascript'; 
        jQ.async = true;
        jQ.src = '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(jQ, s);
   })();
</script>

正如谷歌在 analitycs 代码中所做的那样;)

于 2013-03-16T06:48:57.467 回答
0

尝试这个

  document.onkeypress = keyPressFunction;

    function keyPressFunction(e) {
      var s = String.fromCharCode(e.which);
        if ( s === "f"){
         alert ("its f");
        }
        else if ( s === "r"){
         alert ("its r");
        }
    }
于 2013-03-16T06:44:15.247 回答
0

这是一个简单的功能,可以完全满足您的需求 -

document.onkeydown=function(e){
    var char= String.fromCharCode(e.keyCode);
    if(char=='f'){
        alert(char);
    }else if(char=='r'){
        alert(char);
    }
}
于 2013-03-16T07:31:46.027 回答