JS禁用键盘Hardkey

本文介绍了一种在网页中禁用多种快捷键的方法,包括F1帮助、Alt+方向键、退格键等,并提供了相应的JavaScript代码实现。目前该方法已在IE和Chrome浏览器中进行了测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前只测试IE和Chrome,其他浏览器并未做过相应测试。

document.oncontextmenu = function(e) {
    var evt = e || window.event;
    evt.returnValue = false;
    return false;
}; //屏蔽鼠标右键(适用于所有浏览器)

//在IE中需要使用window.onhelp才可以屏蔽F1帮助
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帮助

//如下方法对IE管用(除开F1,IE的F1需要借用window.onhelp),对Chrome都管用
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,非IE可以,IE需要通过另外一种方式,见上
        (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,对Chrome无效
        (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();
    }
};
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值