首页  >  文章  >  web前端  >  如何使用 JavaScript 禁用文本区域中的复制和粘贴?

如何使用 JavaScript 禁用文本区域中的复制和粘贴?

Patricia Arquette
Patricia Arquette原创
2024-11-02 22:11:02840浏览

How to Disable Copying and Pasting in Textareas with JavaScript?

使用 JavaScript 禁用复制和粘贴的高级方法

在 Web 开发中,防止最终用户将内容粘贴到文本区域可能是必要的数据完整性或用户体验。为此,自定义 JavaScript 代码可以提供解决方案。

实现:

  1. 检测按键事件并跟踪是否 CtrlCmd 键被按下。
  2. 在 keydown 事件处理程序中,检查用户是否按下 CtrlCmd 以及 V(粘贴)或 C(复制)。
  3. 如果检测到的组合键与 Ctrl/Cmd VCtrl/Cmd C 匹配,通过返回 false 来阻止粘贴或复制操作。

示例代码:

<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>

用法:

要使用此代码,请将 "no-copy-paste" CSS 类应用到要禁用复制和粘贴的文本区域。在没有此类的文本区域中,复制和粘贴将正常工作。

注意:此解决方案可能并不适合所有应用程序,因为它确实阻止用户使用标准键盘快捷键,例如CtrlCmd F 用于查找/搜索。在实施此措施之前,权衡可用性和安全性之间的权衡非常重要。

以上是如何使用 JavaScript 禁用文本区域中的复制和粘贴?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn