我正在开发一个在线打字软件。在打字软件中,一切顺利,但我遇到了不诚实的用户的问题,他们可能会将文本输入文本区域,复制它,然后重新加载页面(因此重置计时器)并直接将其粘贴。所以我在考虑使用类似evt.preventDefault();
当 javascript 检测到按下 ctrl / cmd 按钮和C
键时的东西。但后来我意识到用户总是可以到菜单栏按Edit -> Copy
。所以我想知道,是否有一种跨浏览器方法可以禁用这两种复制方法?
问问题
1537 次
4 回答
3
您可以尝试使用以下 jQuery 代码:
$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
e.preventDefault();
});
于 2012-04-09T08:56:38.223 回答
2
您也许可以执行以下操作:
var txtArea = document.getElementById("YourTextAreaId");
txtArea.oncopy = function() { return false; }
txtArea.onpaste = function() { return false; }
txtArea.oncut = function() { return false; }
但即便如此,用户也可以按照您的问题中的建议通过其他方式复制内容。
于 2012-04-09T09:06:16.367 回答
1
您可以阻止某些事件,但无法阻止此类用户行为。用户始终可以通过浏览器控制台从 DOM 节点复制文本。
于 2012-04-09T08:58:54.707 回答
0
绑定事件处理程序并防止剪贴板功能如下:
$('textarea').on('copy paste cut drag drop', function (e) {
e.preventDefault();
});
于 2012-04-09T23:27:41.680 回答