JS禁用键盘Hardkey

document.oncontextmenu = function(e) {
    var evt = e || window.event;
    evt.returnValue = false;
    return false;
}; //屏蔽鼠标右键

window.onhelp = function(e) {
    var evt = e || window.event;
    evt.cancelBubble = true;
    evt.returnValue = false;
    if(evt.preventDefault) evt.preventDefault();
    if(evt.stopPropagation) evt.stopPropagation();
    return false;
}; //屏蔽F1帮助
window.onkeydown = document.onkeydown = document.documentElement.onkeydown = function(e) {
    var evt = e || window.event;
    var currKey = evt.keyCode||evt.which||evt.charCode;
    //注:这还不是真正地屏蔽 Alt+ 方向键,因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,用鼠标点掉警告框,这种屏蔽方法就失效了
    if ((evt.altKey) && ((currKey == 37) || //屏蔽 Alt+ 方向键 ←
            (currKey == 39))) //屏蔽 Alt+ 方向键 →
    {
        alert("不准你使用ALT+方向键前进或后退网页!");
        evt.cancelBubble = true;
        evt.returnValue = false;
        if(evt.preventDefault) evt.preventDefault();
        if(evt.stopPropagation) evt.stopPropagation();
    }
    if ((currKey == 8) || //屏蔽退格删除键
        //(currKey == 27) || //屏蔽ESC.不成功
        //(currKey == 112) || //屏蔽 F1,通过另外一种方式,见上
        (currKey == 113) || //屏蔽 F2
        (currKey == 114) || //屏蔽 F3
        (currKey == 115) || //屏蔽 F4
        (currKey == 116) || //屏蔽 F5
        (currKey == 117) || //屏蔽 F6
        (currKey == 118) || //屏蔽 F7
        (currKey == 119) || //屏蔽 F8
        (currKey == 120) || //屏蔽 F9
        (currKey == 121) || //屏蔽 F10
        (currKey == 122) || //屏蔽 F11 //全屏的时候,退出全屏还是有效
        (currKey == 123) || //屏蔽 F12
        (evt.ctrlKey && currKey == 82) || //Ctrl + R
        (evt.ctrlKey && currKey == 78) || //Ctrl + n
        (evt.shiftKey && currKey == 121) || ////屏蔽 shift+F10
        (evt.srcElement.tagName == "A" && evt.shiftKey) || ////屏蔽 shift 加鼠标左键新开一网页
        (evt.altKey && currKey == 115) //屏蔽Alt+F4,只有在全屏下有效
    ){
        evt.keyCode = 0;
        evt.cancelBubble = true;
        evt.returnValue = false;
        if(evt.preventDefault) evt.preventDefault();
        if(evt.stopPropagation) evt.stopPropagation();
    }
};

猜你喜欢

转载自blog.csdn.net/hsl0530hsl/article/details/78919861