本机javascript中的Keypress功能

时间:2013-03-16 06:42:50

标签: javascript jquery

以下是我的代码:

$(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 个答案:

答案 0 :(得分:7)

document.addEventListener('keypress', function(e) { 
  var key = e.keyCode || e.which;
  ... // rest of code
});

答案 1 :(得分:1)

在本机js中,您可以通过onClick,onKeyPress,...等元素属性附加事件。 别忘了,事件处理函数中的event参数;) 在不同的浏览器中,您可以通过事件的不同属性读取按下的键的代码。

以下是一个例子:

<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事件。

a sugggestion(offtopic):

使用本机javascript时会出现一些问题,因为浏览器的不兼容性,jQuery中已解决的问题。如果您要使用jQuery,但无法访问html代码,并且想加载jQuery,可以从jQuery网址中将CDN添加到您的网站,用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代码;)

答案 2 :(得分: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");
        }
    }

答案 3 :(得分:0)

这是一个完全符合你想要的简单功能 -

document.onkeydown=function(e){
    var char= String.fromCharCode(e.keyCode);
    if(char=='f'){
        alert(char);
    }else if(char=='r'){
        alert(char);
    }
}