5

Ctrl单击某些键( / )时,我试图禁用所有快捷键Shift

这是我的快速片段:

$(document).keyup(function(b) {     

    if (b.keyCode == 16) {return false;}
    if (b.keyCode == 17) {return false;}

    $("body").append(b.keyCode + " ");


});

​当您单击Shift或时,不会Click打印keyCode 编号,但如果单击+ ,则会打印字母的 keyCode 。ShiftAny Letter

示例:http: //jsfiddle.net/javascript/K4sCx/7/

4

4 回答 4

8

您可以确定是否在事件对象中按下了“特殊键”。

检测事件对象中的特殊键:

if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys")
}

代码示例:

$(document).keyup(function(evtobj) {     
                if (!(evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)){
    if (evtobj.keyCode == 16) {return false;}
                    if (evtobj.keyCode == 17) {return false;}
    $("body").append(evtobj.keyCode + " ");
                }
});

提琴手

​</p>

于 2012-12-18T12:33:52.797 回答
4
    $(window).on('keydown',function(event)
    {
    if(event.keyCode==123)
    {
        alert('Entered F12');
        return false;
    }
    else if(event.ctrlKey && event.shiftKey && event.keyCode==73)
    {
        alert('Entered ctrl+shift+i')
        return false;  //Prevent from ctrl+shift+i
    }
    else if(event.ctrlKey && event.keyCode==73)
    {
        alert('Entered ctrl+shift+i')
        return false;  //Prevent from ctrl+shift+i
    }
});
$(document).on("contextmenu",function(e)
{
alert('Right Click Not Allowed')
e.preventDefault();
});

这将被 Chrome、Firefox、IE 和所有浏览器支持 control+shift+i & F12 & 右键单击​​。

于 2016-10-15T07:11:48.123 回答
0

请参阅上面的禁用 ctrl + 鼠标滚轮的链接,以通过 ctrl+鼠标滚轮禁用缩放效果。

/*above code is added to disabled ctrl + zoom on mouse wheel  by Ñ££¿*/
$( document ).ready( function ()
{
    $( document ).keydown( function ( event )
    {
        if ( event.ctrlKey == true && ( event.which == '61' || event.which == '107' || event.which == '173' || event.which == '109' || event.which == '187' || event.which == '189' ) )
        {event.preventDefault();}
    } );

    $( window ).bind( 'mousewheel DOMMouseScroll', function ( event )
    {
        if ( event.ctrlKey == true ){event.preventDefault();}
    } );
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

于 2018-06-27T12:28:21.967 回答
0

我用谷歌搜索了同样的事情并想出了自己的解决方案。我提出这个问题的原因是在所有浏览器上禁用开发人员工具。

基本上禁用 ctrl 和/或 shift 证明完全没用,因为可以在浏览器中自定义快捷键。

我使用的一种方法是确保如果按键不在输入/文本区域内,则它必须返回 false/ 或弹出窗口或您想要的任何内容。

我是如何做到这一点的,是加载 dom 并立即将焦点放在页面的 body 标签上,然后运行一个间隔函数来检查焦点是否不在 body 上,如果没有,则将焦点返回到 body 标签。

如果同时单击输入,则禁用间隔正文检查并将焦点放在输入上,直到按下输入或输入失去焦点并使用 onblur 函数使用此 onblur 函数将焦点放回正文标签。

将注意力集中在 Dom 上可以访问所有按键。

随着 PWA 的首次亮相,一切都变得更好了,因为现在您可以强制用户进入全屏模式,这会自动将焦点放在 dom 页面/正文标签上,从而可以完全控制按键功能。

我现在无法在任何浏览器上的我自己的页面上调用开发者控制台,我已经尝试了所有可能的方法,希望这对某人有所帮助..

于 2021-09-08T14:14:27.780 回答