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番号印刷されませんが、Shift+Any Letterをクリックすると、文字のkeyCode印刷されます。

例: 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キーを無効にすることはまったく役に立たないことがわかりました。

私が使用した1つの方法は、キーの押下が入力/テキスト領域内にない場合は、false/またはポップアップまたは必要なものを返す必要があることを確認することでした。

私がこれを達成した方法は、domをロードし、すぐにページのbodyタグにフォーカスを置き、次に間隔関数を実行して、フォーカスがbodyにないかどうかを確認し、そうでない場合は、フォーカスをbodyタグに戻すことでした。

その間に入力がクリックされた場合は、インターバルボディチェックを無効にして入力にフォーカスを置き、Enterキーを押すか、このonblur関数を使用して入力がonblur関数でフォーカスを失うまで、フォーカスをbodyタグに戻します。

Domに焦点を合わせ続けると、すべてのキー押下に1回アクセスできます。

PWAがどこでもデビューすることで、ユーザーを全画面表示にすることができるようになり、さらに優れたものになります。これにより、domページ/本文タグに自動的にフォーカスが移り、キーを押す機能を完全に制御できるようになります。

現在、どのブラウザの自分のページでも開発者コンソールを呼び出すことができません。可能な限りあらゆる方法を試しました。これが誰かに役立つことを願っています。

于 2021-09-08T14:14:27.780 に答える