首頁  >  文章  >  web前端  >  如何使用 JavaScript 阻止特定文字區域中的 Ctrl V 和 Ctrl C?

如何使用 JavaScript 阻止特定文字區域中的 Ctrl V 和 Ctrl C?

Patricia Arquette
Patricia Arquette原創
2024-10-27 08:02:31772瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn