javascript - 跨浏览器的方法阻止从 textarea 复制文本的所有方式?
我正在开发一个在线打字软件。在这个打字软件中,一切运行良好,但我遇到了不诚实用户的问题,他们可能会将文本输入到文本区域中,复制它,然后重新加载页面(从而重置计时器),然后立即粘贴进去。所以我想到的一个方法是,当 JavaScript 检测到按下 Ctrl/Cmd 键以及 C 键时,使用类似 evt.preventDefault(); 的方法。但后来我意识到,用户总是可以通过菜单栏点击 编辑 -> 复制 来复制。所以我想知道,是否有一种跨浏览器的方法可以禁用这两种复制方式?
答案#1
你可以尝试使用以下 jQuery 代码:
$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
e.preventDefault();
});
答案#2
你也许可以做类似这样的事情:
var txtArea = document.getElementById("YourTextAreaId");
txtArea.oncopy = function() { return false; }
txtArea.onpaste = function() { return false; }
txtArea.oncut = function() { return false; }
但即便如此,用户仍然可以通过其他方式复制内容,正如你在问题中所建议的那样。
