使用JavaScript和jQuery处理按键事件(F1-F12),跨浏览器

90

我希望使用JavaScript和jQuery处理F1-F12键。

我不确定需要避免哪些陷阱,并且我目前无法在除了Internet Explorer 8、Google Chrome和Mozilla FireFox 3之外的其他浏览器中测试实现。

有没有完全跨浏览器的解决方案建议?例如经过良好测试的jQuery库或仅使用基本的jQuery / JavaScript?

15个回答

0

我对这个问题的解决方案是:

document.onkeypress = function (event) {
    event = (event || window.event);
    if (event.keyCode == 123) { 
         return false;
    }
}

使用魔数123作为F12键的密钥。


0

请注意,您的应用程序可能无法远程适配移动设备。


-1

如果有效,请尝试此解决方案。

window.onkeypress = function(e) {
    if ((e.which || e.keyCode) == 116) {
        alert("fresh");
    }
}

你是怎么猜到116这个值的? - Basile Starynkevitch
@BasileStarynkevitch 请看一下这个.. http://help.adobe.com/zh_CN/AS2LCR/Flash_10.0/help.html?content=00000520.html - Ofir Attia
@BasileStarynkevitch 我通过在正确位置设置断点并检查 event.which(携带适当信息的事件属性)找到了我的按键代码值。 - Juan Lanus

-1

添加快捷方式:

$.Shortcuts.add({
    type: 'down',
    mask: 'Ctrl+A',
    handler: function() {
        debug('Ctrl+A');
    }
});

开始对快捷键做出反应:

$.Shortcuts.start();

添加到“另一个”列表的快捷方式:

$.Shortcuts.add({
    type: 'hold',
    mask: 'Shift+Up',
    handler: function() {
        debug('Shift+Up');
    },
    list: 'another'
});

激活“另一个”列表:

$.Shortcuts.start('another');
Remove a shortcut:
$.Shortcuts.remove({
    type: 'hold',
    mask: 'Shift+Up',
    list: 'another'
});

停止(解除事件处理程序):

$.Shortcuts.stop();


Tutorial:
http://www.stepanreznikov.com/js-shortcuts/


-1
你可以使用jQuery来实现这个功能,代码如下:
        $("#elemenId").keydown(function (e) {
            if(e.key == "F12"){
                console.log(e.key);
            }

        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接