跨浏览器方法,用于防止从文本区域复制所有文本的方法
Cross-browser method to prevent all methods of text copying from a textarea?
我正在开发一个在线打字软件。在打字软件中,一切进展顺利,但我遇到了不诚实用户的问题,他们可能会将文本输入文本区域,复制它,然后重新加载页面(因此重置计时器)并立即粘贴它。所以我在考虑使用类似evt.preventDefault();
的东西,当javascript检测到按下ctrl/cmd按钮以及C
键时。但后来我意识到用户总是可以转到菜单栏按 Edit -> Copy
.所以我想知道,是否有一种跨浏览器方法可以禁用这两种复制方法?
您可以尝试使用以下 jQuery 代码:
$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
e.preventDefault();
});
你可以做这样的事情:
var txtArea = document.getElementById("YourTextAreaId");
txtArea.oncopy = function() { return false; }
txtArea.onpaste = function() { return false; }
txtArea.oncut = function() { return false; }
但即便如此,用户也可以按照您的问题中的建议通过其他方式复制内容。
您可以阻止某些事件,但无法阻止此类用户行为。用户始终可以通过浏览器控制台从 DOM 节点复制文本。
绑定事件处理程序并防止剪贴板函数如下所示:
$('textarea').on('copy paste cut drag drop', function (e) {
e.preventDefault();
});
相关文章:
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 无法使用 $('input[name=“rate”]').focus() 聚焦文本框;方法
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- 我能从“;输入“;事件是否有更好的方法来跟踪文本更改
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小
- 有没有一种简单的方法可以将整数转换为等效文本.即:1变为1
- 任何编写文本文件并将其替换为上一个文本文件的方法
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 如何从该文本的 onclick 方法中更改 d3.js 文本输入
- 如何在OnPaste方法中清除文本区域
- 什么'这是使用jQuery将一些文本锚定到外部链接的最简单方法
- JavaScript 表单操作更改RC方法发布文本输入提交
- 使用JavaScript过滤从网页复制的文本的最简单方法
- 有没有一种方法可以用包含ENTER键换行符的SQL数据填充文本区域表单
- Angular promise回调不是在构造函数方法内部触发,而是在对象文本方法中触发
- 我如何结合用户输入改变文本方法和一个if语句
- 在对象文本方法周围传递异步值