跨浏览器方法,以防止从textarea的所有文本复制方法?

时间:2012-04-09 08:52:18

标签: javascript jquery textarea clipboard copy-paste

我正在开发一个在线打字软件。在打字软件中,一切进展顺利,但我遇到了不诚实用户的问题,他们可能会将文本输入到文本区域,复制它,然后重新加载页面(因此重置计时器)并直接粘贴它。因此,当javascript检测到按下ctrl / cmd按钮和evt.preventDefault();键时,我正在考虑使用类似C的内容。但后来我意识到用户总是可以到菜单栏按Edit -> Copy。所以我想知道,是否有一种跨浏览器的方法来禁用这两种复制方法?

4 个答案:

答案 0 :(得分:4)

您可以尝试使用以下jQuery代码:

$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
   e.preventDefault();
});

答案 1 :(得分:2)

你可以做类似的事情:

var txtArea = document.getElementById("YourTextAreaId");
txtArea.oncopy = function() { return false; } 
txtArea.onpaste = function() { return false; } 
txtArea.oncut = function() { return false; } 

但即便如此,用户也可以通过其他方式复制内容,如您的问题所示。

答案 2 :(得分:1)

您可以阻止某些事件,但无法阻止此类用户行为。用户始终可以通过浏览器控制台从DOM节点复制文本。

答案 3 :(得分:0)

绑定事件处理程序并阻止剪贴板功能如下:

$('textarea').on('copy paste cut drag drop', function (e) {
   e.preventDefault();
});