ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript を使用して特定のテキストエリアで Ctrl V と Ctrl C を使用できないようにするにはどうすればよいですか?

JavaScript を使用して特定のテキストエリアで Ctrl V と Ctrl C を使用できないようにするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-27 08:02:31853ブラウズ

How to Prevent Ctrl V and Ctrl C in a Specific Textarea Using JavaScript?

JavaScript で Ctrl V、Ctrl C を防ぐ方法

コピー アンド ペーストはユーザーにとって便利ですが、場合によってはユーザーが機密情報をコピーしたり、特定のフィールドのデータを操作したりできないようにするなど、この動作を制限する必要があります。 JavaScript は、Ctrl V キーと Ctrl C キーの組み合わせを検出して防止する簡単なソリューションを提供します。

これを実現するには、次の手順を使用します。

  1. Ctrl キーの検出: keydown イベントを使用して、Ctrl キーが押されたときを追跡し、その状態を示すフラグ (ctrlDown) を設定します。
  2. ハンドル キーの組み合わせ: 特定のテキストエリアの keydown イベント ハンドラー内貼り付けを制限したい場合は、Ctrl キーが押されていて (ctrlDown)、キー コードが V (86) または C (67) と一致するかどうかを確認します。組み合わせが検出された場合は、false を返すことでデフォルトの動作を防止します。
  3. 制限された領域外への貼り付けを許可する: 制限されたテキスト領域外への貼り付けが有効なままであることを確認するには、ドキュメントをイベント ターゲットとして使用します。 keydown イベント ハンドラを分離し、必要なアクションを実行します (この場合、イベントのログを記録します)。

コード スニペットの例を次に示します。

<code class="javascript">$(document).ready(function() {
    var ctrlDown = false,
        ctrlKey = 17,
        cmdKey = 91,
        vKey = 86,
        cKey = 67;

    $(document).keydown(function(e) {
        if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = true;
    }).keyup(function(e) {
        if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = false;
    });

    $(".no-copy-paste").keydown(function(e) {
        if (ctrlDown &amp;&amp; (e.keyCode == vKey || e.keyCode == cKey)) return false;
    });
    
    // Document Ctrl + C/V 
    $(document).keydown(function(e) {
        if (ctrlDown &amp;&amp; (e.keyCode == cKey)) console.log("Document catch Ctrl+C");
        if (ctrlDown &amp;&amp; (e.keyCode == vKey)) console.log("Document catch Ctrl+V");
    });
});</code>

このコードを配置すると、ユーザーはCtrl V を押している間は、制限されたテキストエリアにコンテンツを貼り付けることができません。通常どおり、テキストを入力したり、他のキーボード ショートカットを使用したりできます。

以上がJavaScript を使用して特定のテキストエリアで Ctrl V と Ctrl C を使用できないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。