当前位置: 首页 > 面试题库 >

如何使用JavaScript检测Ctrl + V,Ctrl + C?

燕英奕
2023-03-14
问题内容

如何使用Javascript 检测ctrl+ vctrl+ c

我需要限制粘贴到我的文本区域中,最终用户不应复制和粘贴内容,用户只能在文本区域中键入文本。

如何实现呢?


问题答案:

我只是出于兴趣而这样做。我同意这是不正确的事情,但我认为它应该是OP的决定......另外,代码可以很容易地扩展到增加功能,而不是把它拿走(如更先进的剪贴板,或Ctrl+
s触发服务器-端保存)。

$(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 && (e.keyCode == vKey || e.keyCode == cKey)) return false;

    });



    // Document Ctrl + C/V

    $(document).keydown(function(e) {

        if (ctrlDown && (e.keyCode == cKey)) console.log("Document catch Ctrl+C");

        if (ctrlDown && (e.keyCode == vKey)) console.log("Document catch Ctrl+V");

    });

});


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h3>Ctrl+c Ctrl+v disabled</h3>

<textarea class="no-copy-paste"></textarea>

<br><br>

<h3>Ctrl+c Ctrl+v allowed</h3>

<textarea></textarea>

还要澄清一下,该脚本需要jQuery库。

编辑:由于蒂姆·唐纳(Tim Down)的建议,删除了3条多余的线(涉及e.which)(请参阅评论)

编辑:添加了对Macs的支持(用cmd键代替ctrl



 类似资料:
  • 问题内容: 我编写了一个SWT UI,它的主要功能是在StyledText控件中显示文本。我想为+ 添加一个处理程序,以便在按下该快捷方式时将焦点设置为搜索框。我尝试使用以下代码检测按键。 我期待在按+ 时看到以下输出: 但是,实际上,我实际上看到了以下内容。 我有两个问题: Display.addFilter(…)是添加全局快捷方式的最佳方法吗?我尝试了Display.addListener(…

  • 本文向大家介绍Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用详解,包括了Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用详解的使用技巧和注意事项,需要的朋友参考一下 Ctrl+c,Ctrl+d,Ctrl+z在Linux中意义 Ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样. Ctrl+c是强制中断程序的执行。 Ctrl+z的是将任务中断,但

  • 本文向大家介绍浅谈ctrl+c,ctrl+d,ctrl+z在linux中的意义,包括了浅谈ctrl+c,ctrl+d,ctrl+z在linux中的意义的使用技巧和注意事项,需要的朋友参考一下 ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样. ctrl+c是强制中断程序的执行。 ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/b

  • 问题内容: 我需要一个示例,该示例如何添加一个键盘处理程序来检测何时按下+ ,+ ,+ 。 我以前是通过菜单快捷键来完成此操作的,但是没有成功。 问题答案: 您可以将KeyListeners添加到任何组件(f)

  • 问题内容: 我有一个使用线程并发出大量HTTP请求的python脚本。我认为正在发生的事情是,正在读取HTTP请求(使用urllib2)时,它正在阻塞并且没有响应以停止程序。有没有办法解决? 问题答案: 在Windows上,唯一确定的方法是使用。立即停止每个python脚本! (请注意,在某些键盘上,“中断”被标记为“暂停”。)

  • 问题内容: 我试图获得一个+ 和+ + 绑定在tmux会话中工作(我也在使用PuTTY)。 我已经经历了必须重新编译PuTTY的痛苦,以便它能够正确发送和发送。使用+之后,我能够看到并分别发送给+ 和+ + 。有什么办法可以将这些绑定到tmux内部的下一个窗口和上一个窗口? 编辑:经过一些研究,我想我可能必须配置xterm来包括那些键码。知道我该怎么做吗? Edit2:所以我发现我可以检索info