Отключить определенную функциональную клавишу с помощью jquery - PullRequest
1 голос
/ 04 апреля 2011

Я хочу отключить ключ F8 на своей веб-странице.Есть ли способ, как я могу отключить его с помощью jquery или любых связанных плагинов или просто javascript ??

Заранее спасибо ... :)

blasteralfred

Ответы [ 3 ]

1 голос
/ 04 апреля 2011

Вы пробовали что-то подобное?

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

Я создал песочницу jsfiddle, где вы можете протестировать ее (работает):

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

1 голос
/ 04 апреля 2011

Как это Отключить клавишу F5 в 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>
0 голосов
/ 26 сентября 2011

Следующий код работает в большинстве браузеров, тогда как я пока не нашел ни одного несовместимого.Дайте мне знать, если это не сработает.

Ключ должен переназначить целевое событие на любое другое исходное событие тривиального ключа, т. Е. Заставить этот ключ 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

...