使用jquery禁用特定的功能键

时间:2011-04-04 15:14:23

标签: javascript jquery jquery-ui jquery-plugins javascript-framework

我想在我的网页上禁用F8键。有什么办法可以使用jquery或任何相关的插件或只是javascript来禁用它吗?

提前致谢... :)

blasteralfred

3 个答案:

答案 0 :(得分:1)

喜欢这个Disable F5 key in Safari 4

但使用keyCode 119:

<script>
var fn = function (e)
{

    if (!e)
        var e = window.event;

    var keycode = e.keyCode;
    if (e.which)
        keycode = e.which;

    var src = e.srcElement;
    if (e.target)
        src = e.target;    

    // 119 = F8
    if (119 == keycode)
    {
    alert('nope')
        // Firefox and other non IE browsers
        if (e.preventDefault)
        {
            e.preventDefault();
            e.stopPropagation();
        }
        // Internet Explorer
        else if (e.keyCode)
        {
            e.keyCode = 0;
            e.returnValue = false;
            e.cancelBubble = true;
        }

        return false;
    }
}
document.onkeypress=document.onkeydown=document.onkeyup=fn
</script>

答案 1 :(得分:1)

你尝试过这样的事吗?

$(document).keydown(function(e){
    if(e.which === 119){
        return false;
    }
});

我创建了一个jsfiddle沙箱,你可以测试它(工作):

http://jsfiddle.net/alzclarke/yW6H3/

答案 2 :(得分:0)

以下代码适用于大多数浏览器,但我还没有找到任何不兼容的代码。如果它不起作用,请告诉我。

关键是将目标事件重新映射到普通键的任何其他原始事件,即使该Fn键表现为普通键。

$(document).bind("keydown", function (evt){ 
    var keycode = (evt.keyCode?evt.keyCode:evt.charCode);
    //alert(keycode);
    switch(keycode){
        case 119: //F8 key on Windows and most browsers
        case 63243:  //F8 key on Mac Safari
            evt.preventDefault();                                 
            //Remapping event
            evt.originalEvent.keyCode = 0;
            return false;
            break;
    }
});

可以在此处找到有关跨浏览器问题的关键代码和说明的参考: quirksmode