如何使用JavaScript检测Ctrl+V,Ctrl+C?
2022-08-30 01:27:11
如何使用 JavaScript 检测 +, + ?CtrlVCtrlC
我需要限制粘贴在我的文本区域中,最终用户不应复制和粘贴内容,用户应仅在文本区域中键入文本。
我怎样才能做到这一点?
如何使用 JavaScript 检测 +, + ?CtrlVCtrlC
我需要限制粘贴在我的文本区域中,最终用户不应复制和粘贴内容,用户应仅在文本区域中键入文本。
我怎样才能做到这一点?
我只是出于兴趣而这样做。我同意这不是正确的做法,但我认为这应该是op的决定......此外,代码可以很容易地扩展以添加功能,而不是将其删除(例如更高级的剪贴板,或+触发服务器端保存)。Ctrls
$(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.that)(请参阅评论)
编辑:增加了对Mac的支持(键而不是cmdctrl)
使用jquery,您可以通过绑定函数轻松检测复制,粘贴等:
$("#textA").bind('copy', function() {
$('span').text('copy behaviour detected!')
});
$("#textA").bind('paste', function() {
$('span').text('paste behaviour detected!')
});
$("#textA").bind('cut', function() {
$('span').text('cut behaviour detected!')
});
更多信息请点击这里: http://www.mkyong.com/jquery/how-to-detect-copy-paste-and-cut-behavior-with-jquery/