如何在网站上实现键盘功能快捷键?

时间:2013-07-22 06:35:42

标签: javascript events event-handling

我想在我的网站上使用键盘功能键。那我怎样才能在我的网站上实现键盘功能快捷键。谢谢大家.......

3 个答案:

答案 0 :(得分:2)

使用Javascript:

// event.type should be keypress
function getChar(event) {
    if (event.which == null) {  // IE
        if (event.keyCode < 32) return null; // special character
            return String.fromCharCode(event.keyCode) 
    } 

    if (event.which != 0 && event.charCode != 0) { // not IE
        if (event.which < 32) return null; // special character
            return String.fromCharCode(event.which); // other
    } 

    return null; // special character
}

对于控制键,使用:event.shiftKey,event.ctrlKey,event.altKey或event.metaKey。

答案 1 :(得分:1)

好。如果你不懂jquery,我会建议你先学习javascript。 键盘上有非常关键的键码。您只需要检测按下哪个键的按键,并根据按下的键添加游戏功能。 List of all buttons

<强> InGeneral - &GT;

document.onkeydown = function(evt) {
    evt = evt || window.event;
    if (evt.keyCode == "any of the above key") {
        alert("some key pressed");
//your functionality goes here!!!
    }
};

满足您的需求 - &gt;

$('#someelement').bind('click', function(event){
   if(event.ctrlKey)
      alert('ctrl pressed');
   if(event.altKey)
      alert('alt pressed');
   if(event.shiftKey)
      alert('shift pressed');

});

答案 2 :(得分:0)

如果您愿意使用jQuery,那么它可以更简单一些。

为了能够捕获复合键,您必须首先在控制键上查找keydown并存储状态。然后在常规键上查找keydown并根据存储状态进行检查。一旦有密钥,重置控制状态。

以下是如何执行此操作的示例:

// Bind keyup to document to trap shortcut keys for various operations
$(document).keyup(function (e) {
    IsCtrl = false;
    IsShift = false;
}).keydown(function (e) {

    // first capture Ctrl 
    if (e.which == 17) { IsCtrl = true; }

    // now capture Shift 
    if (e.which == 16) { IsShift = true; }

    switch (e.which) {

        // now capture S and if Ctrl is pressed                                                                                                                                                                                          
        case 83: 
            if (IsCtrl) { alert("Ctrl S pressed");  } 
            if (IsShift) { alert("Shift S pressed");  } 
            e.preventDefault(); 
            break;

        // capture F1                                                                                                                                                                                           
        case 112: alert("Heellllppp!"); e.preventDefault(); break;

        // capture ESC                                                                                                                                                                                           
        case 27: alert("Escape!"); e.preventDefault(); break;
    }
});

IsCtrl”和“IsShift”是全局范围内的变量。上面的代码专门检查控制键。如果要检查其他组合(包括),请更改检查控制键状态的部分。功能键从112(f1)开始。您可以参考@MESSIAH发布的图表来获取其他密钥代码。

希望有所帮助。